PREME/G/MU487021
01531248325624113270203194983535698267637281814443597842862524857631762108329217244378586461934874539849865390632072517113030867206040983910943664814915826543817783990195049886672833921651685920363298480357248675876413457134276451763128604887331111217099813313149083379667060063900269911411429595639107570146431186626125616962639385091653501491796814030054109302617253407398119417359749892361547133624644337060151998006210002821365580007521867448246975752255100525262410360702339038878812839866056362967059188547368001233286579082538743868110428520115050655951030635842260924823517693427908799275959756733709739689404237676576216620695239984101584599841636278350635883349133805748514422854134382304407345645165980232305139151659035838410626931019342817451669534991278989832380763026520125168807157749962622593383938702164986121870762854329539918969922841285792992240434823090147939540934728388251094284586389091484219217901874626565483499464619517336643574281434159545666819879724713167685206250495244865092908537287027083323882384165505493914066540455609907266495647504306166049599575700719244821177106313969176233950223558895079291493367243719828281907386105534031520926193631863624771495317198259402502134172082291089791776975864268264098382135388693050462246604786363011360887354885835189952885194134714335246154279189062002632711888636344821566625156654116131694994998869717920487395840536513563429990371338476227074140371411045896014887434484367097533776343548817569384356561128514100716152651141343106745197681009939148646349806782149258819449410172208737470667658530255609310401779077947768621800193389626211748565061005466355796728958549436613459369414606971362241463330007359832255616095891828637309388600777653597867211054804086674245222425070910706088494910182854162277633292776871516072730203661445880107951826079832552279053852769866465243294047387267157774603980141470157933939234092717128524069607389686401060276693951021990550793332926992640681049874126920311794357326019920863905926903455902304254242102953871594408535290795391336318852703974616015720465655809515561205796759868097834630776848883858493489247169225175110776448503913929525614631681060007773363427507363558911925152313714142183904073309636911663554912611198779228169372547370289246877263450309643487422828514965424395647810235529772174932446571270611856767895735634373645297767600852133526069086804637730530446357482669369357423330740641776285632658294369905709496697981740244843095066682444881933640843040641538274474837906920801090602495706785132806517680798303857506880125144871432190812469603104424898019389298157310571127962076463613155640361074526590721802453462131203659227833082471637114272473355476445443972832598374010365824640119390724219648866399580228576958687409525533160980640307749613288693388066606152907085267772930045602567775398447146527465691319457537519641773018428577355893097113655766356218969666790976683414415547898349024781781154878357526368366407199100378915629076355199614670594645714978654336601360906423304330357909315628338567997508945785287175854193113010858959167970786385168301833163410833872649005405533304839053066041675366805099482012792906501397586028961202882177920947887146033065928085576286060485653598187710607122973055113262184849045284672774530243217733474435016285061621813652720930907532408887357931012404985700326526503968366449406478348135234169070112589074658754827690076049323953817834257196439195643241652508860347010278998215694377616049549712383548082682568412548889114408524052408658537062186211636257724398077659959154335274937695438768224121461572546534474553514813722278438607477948786683392178713701605369149535542093290466514310098911779232451693509906822889671924001672811549104845565365581504357241946671543747881692468655003945974741211726054254949079100711622651237645196129756966237197807062973357040213456104987805949507806287996386701157002606017912070491338871954460179078711883243254821766213074941721091385467428437969831772345513473750367178173458394397608267168236089815883367459928984771149960738195348355436105585950539098376603302041823228923560095737603106567193831717695578032703124867851393703012977227536599382976187658329677211631330681236999014044327496861677300018064824253974890464703075538498331777247867109093112446417844888296529353921207319540223289329940147644293537249925325820732950317908986222608955507918754859244906168259187808340784413563081909116032816037759074079276556866218217842777107667292095797554607076509185775161337450560287427681421113732982278927072820995821654828108014426836582140237745340573465617227889712666502898486632372765907837774067399256891973209479138806375022354773456038862283552936095394001986324610073945131809625752093397909863312420232509566285940757816151165598524458859647366560641973259063585923495124241558741632333214555479319732682064679205167532955334969691747253179536195799697918282975012707982480148464700665765670847634844859643971640002501851102743325014823006901193350235833919476076212554781128998871316400971536068208917683438888938037006843821933577000656467895116262039253212092024979629287236091232503559497425220760870606011489493205025276654875997860908783370225431495200470558304256458251650267960033242271978881979107900275185516607539952075697739838586765272546800850257698511023571633830370539495002501313824032059705755274827518909442732596694866119739799363687682092317707776239875043961781530249900920181022741911907774601863038600392476415608675630478485876221564158309090055113500649486919121475361386875540010557431175154074064379974403781487920612809114887111871960499694114962998222902724127569541232496970729741659623466992929302141924634682118180358175612739340628615867439997997267772770694340511280894324405309381517258132607168633357644729903916931607218025946462303002520858063262952845326899364040205217365369111626983203632409978974270225066705098098486545691938101199724292784752447473101969193742741244517551581766623296395985217178460916936970402768162533337562157654702721009698309488061964548627793089417514357851998108292434977663938032352318225987560003296755943655945278665075045267083876210327428679501253203617592815476644035550621489165867834221968193530534485143287541829478111713820583614913077335824979039779746339269640430171089503618882902770635781296476893355532113646311588104966617361498441610299989861248926458060699603770705567679331591374523742884183282310450921589037111446294225620245478383032930391314147257878761431937273537534902966759608072654116914177618780190367112088561978064356877804733887458898941266549860164532127365241058142453456420814960094787903962816840619676072601848456643810798954370306514290678938013862484138041546909071888515311614466458034327849370171729048311807456983763348150947996916307785671076009452550982630719484328133685139925970612836974667262819830547073274489282220648356963051849839399324207669654067797025741468735598481419730264423769273650084106295460142885395378999789302452711737140168720209750112985208388567927705842686369889371731584658648600168751867615359384224763038350665518710299199456453745925346129026115835026638322048549175961310970613158880424024240125002011969937907358756935962382870575562566425712213302702394155340186030122621172917937691384982101714117694210349583395141730810830279772437965279683199299485286656665171079369322858123686659741566810402950486604327418351073059846804593857287758639091714304843486374403795838412672482167886943950033771268042884775711742465275133728150486705203062220423698175525584203998638501517762724991720394638027772073488882784618814771198068280463382741339198819296532390024062933049417553372335293962965761654004532298843323490093207230170687408590850082041633924485908429217329668504705984279994496960445930124837963626342830366496976025220482046580205604927136017434241492530353022419346877319411856560504549941251233504657190947340595221193764340291790991922011216912207943996464801570999722002550787984291937630603678604991476202431967026734577911537583239015159359607439941674615928481219563632191942600276357400261241672332600579313683007849796056849472901361401389527430478977612476005218842834634854169899414742446572650240270086089496819569314135592141098043988573409237303327616671032927513266037247698371506057289930692255460241782745049731853649141837266595810900559416870548228942001783679822813916747668515933108437775192180705309394738569330463468570519133595945162902059127728421415301439631414495354554654829587489442361450940967955456108190435840264413318935932417401756134472311074406278379545734471222633331440066826876890942134941872199464643433457178923361394535193372696893290119191919377894138087196618509060487856442153705660931315263342644702790542558488152743476448739074101568305252080722603269531627483662359893786497457771062491781823582917097040454235847665571310481583412538181765261733313029581291149383536369694509803672028152730901543054107351983771885556732872254594365224793055621183630626005966495869391903639417083336126165416471537896949739146210139643057403471129090720732755564180434159736315029433997131386604601711788512491690682299720000302703927102073869460574908215681015168127946582876750217950274912325302512523708900740384365999652481429167941155270632856799077680999569169177141315503190370504557477112810025474112780343178290610784343886624773618393131515312019642810993027759973610500492099470063299800596047575711649009780268884421125333610906078040554838889636213820324512111925032701046009619848567770951926784010667449448735295122283355702103589452725382779505347821681164179863404114474726749641393235472063698980862854144421019982915673098038689676509335455698469095414905985735619832253980538892279646382964060851100601093538787820105211232575815263944757544803829065186180441639748676593900057825985205334199515843427507979505107505271419641070059053482958957768891534609250331593464718078263040738716109562037766321942527440634001843710594477825045912977145017695150485419085500680912504720158076946790664214508459914978374228215815478015637538896970866564774729548454424991253901496603173060292801868638762279365513358602136029078139264154307153964299947329026822736109933297412750790462395094816096002556058144016055312429935172150036173861009756268901746379910260111463364533319813151224454114200644671558543054001404228123056584133080487800386840735022421310084922012541587632864397513776072443974776943391914969879387285674128729780918242570773493816228784642559354495632847566731266875973171194390126882703233550045713668594270303253787565700449641284357789271934884086554781747236227203825274733506633876295963135391206211620674497440595675902050038573464863703857735891975555052671344281034237259681748800961121551709248043896449946454275236268257285173270841216053012786773461677124266911257829666468117691060526124058149780442903600969552932319506106302547833496736611587275203736181731442852252793996823048028606311715462683917541481552510586351304690953596620396297998507561663515433404937943092062708222173328074115160499777093474871598078531105501451664184561675699043120858009617072025528198502006486322149774992734990029299619345490006692628888317142901427728351087057460947409107941509196577042590061748157078131974412318427488051621673069345521562280259769256913263216527015525453487092684325697671333625269058671283669850916030492605204847186534052406892433772595345321614439220090181919334309557570546321902402319139744359260158847341881906958985955561723474844079540756076958698384118753832824988831348826220472881832256063259707903547531594815773777422105108012819974722822317270193838739708083469566334737839820299287358243010283595864371950719584712968276510311958235218776733233193415950868182675038158368345085678761368340080537850916951198246273520418137399914836071331820654575489817797215264446810591379223653043233923176605393434660296453037689671945259327725451624568739481247362895573989888859256172667225668746478513460106821048591717583795060790350902481998961322315603686008965776733085895270930628090367348329979608062678054032869297954151798207588178261755830445953564311211396186089092723727640713423714840952125028046355701051317851437095487861386749322928041610100041703692738140187605695465835730983830240886116966227531406732452695252383323561331395783735965591646220312135391049940150692018374979104501379757770816493058443532034071374904851089110683471416020607307680659331688008092210919894998316558644540832764606290250409198465751145851903575456603231533248012084549808552692084660649346351720267720964374627506263723695093142400046847443209402653966331453542002025574634891924380300516746000411523373098324922179130906959158335525208551389382039266028105192385322506613476894169513384680096341953322241106953632830731160077586782196222471939194314159175061997998901818466517162572161580298954671803423066163349166227720714194866210985225964697163208656967705427624783065347138829577710889037125521873714300463923176398639859585789395872169145240360451985325906681972274314424143000611364041117467007674043131374762265244637435064658613945889429136472795210962811506362376335508817942363457043731250022050819054089230414230227271086958337235368935935673234718843386986901383873126005636095549070394756801052566611156689455729060061324146060150578984432679123010376030283415578252066907618706308347046774937462250732180060789565561684498089421009802112060047465251169595670747497017812052974367516891273166108432001318985746152801269878418105893000581130567516881846785962125012951049960046748334213252565908562950766051331379384237616003833585157191931919953148807249923794983949023135945170315410640556188786211342834390642661429535276835766811016975931175715962885158919049106540060111133904383593074063256018544651996105016715749429531633531239545680214507026272377436407250543259771906423881291771110623995455328189642933594188469060898263429466702821116229984641798500476797042244621159525520761040764308979181767441387386626880983740620087672834687661144266145353766469221641993051816907070733232684728867294966169593932116922231529015201150693310631278911541958055602851366491114413496960204933616611780513965064246289352152810778889632835485336340648802179290235477006895643459664206906885770015852194049603616832581674847663123624924008093446823357417219239200602958873222010958495764838322124543992662241587823549750188040383014701681000027488245875341404895159421740331261381612258303706130269402989309555531583957165689703116417149535455755418365033656895906115194222919085615223801940144680242212902559238179643051713613410367314476108091772319384233648587787757089441925123162101689203585195488596362804415913084368578025915623301246482260130855240638119982219846779073973913151091666241900080725008303191343651637509762234169732919536423905937540908418694520135007860294820306090067461520781197958768266112993777627748464725923150298942359249667757308280015091647537862498014304353048909736270423719134302380962987725169292743036904341141816306479140989994224131610076058453917737149348075719050651201737762461790118149254187931172689068303328601291309146634747212879869766353513789301304802225973065032647556129731316170010934715841043433687485978733175931139291796648727346418250831978243332611426839328033174406643727035158354080398402600260964280693636562323835835669693921409791265082452045969831117974686674613281126543232976547034733768057897256491402764732437336997788886481514651202551931814699330257543037401564492224217260530569313598942031712185350586081799000985625796963035940875105594923665951105889213263233086257599749981669283378403018065996030738853919192776799837601910812204359418723189918850953926601552565767208269057740984477306705162129580501722287129032947195746444473914043227885101625669766726379354927409192425106289481772390516239246391274125847742700112491238420956000162180704345486142239697986747887201597848431034079682988180741085387491297261225594920022905331223301074596194321164155946313276823698134017828087667258591093902119068334555111354002414386351342441072090573324190770817310642725483263483271869096638745429909189660675951831031588854204370026066968312556014415693523294044065212183311478059761679043435151803813959267292478036176444443018662428245562557984066926979269935855317668954430356504400345455704493900476445481983909258897576738006552155692375069695544778946702249941191167158090753696369827440495264063041112634559189382829879643637653319253147320719956848663740931090638060308909691546428026585290699537621838103942738284142101380448313467480290952656640865916047380375866211040273530102757022506093562062505716262641481175109271917280685948232738724794862682455523992908239152520582487489977269813682287563472524970272928021965335172183500488503102636026431177350014336311219891109132941907328758770387487193450120664212885932266111222488357816756758263687088305230972716022302173645490390722006856517799165737680305363678970082129929634490523271799191928749289217761425436163481349501095918257656665642953808303820166033227481790503535890062491436653747318445630851318969463886694342070519165538266800814395466606419710633896389981698843104838971185431599187948028263949983442748123812999040004159782794887732606538673365336793601788795018270059202214266233957657207251398029118778627758908552265022989214313862161259049218218859475777377600341736602789699473450442925766222636945885396936250699586380497291900975021760971691445745149385429978399703799971704268984126665777931313334174671343208742173333782896871981239340561872611794621878105887509683955544257148987711051586342444754940681671559829113087789974959232110912931559010965053974710026976358709621202606863404504567357794725421416820517711060957444039737718391935904723933839765624930491357560283712187160631619981904212202539077371712098674691907153724874974622155384379785408498049447578442191199030570009057665040767097033772583495725664537949914525436768657117664965258341270427809727068311816657258565070325044670594105194700422855091899370962281514775531175350859981817819349899965611272155427165933160419634584009481951592262102820830752814340263667501688109521808536941055218649806192332478733408628008749877804245862885240821152387314879089833326624909978577117582873408176886319635728040995444250261045219121106215459141960005887826486680410207282706574226545318905698846882105412753602421538764597276586146267726387412138557226546587859282039105183034940663899743640975555858751714037179183991426869917419592074614339038240067057787641429505179479008052122183091888127312018212524270227710852437992416943494027495671099327692392046829142713479898867455551018859280590103692690531412127176938258556211110469364690376495742830530289105586854575835171650273221246278311318088325877442822143340977736944887964238979018648614387981413657580129366664713306565473873238600281965713043064357366751703387894909843058055312548173825091403062721433257093677066455274639088546833376282458372255270933315989733225696782558380068428200887736465303932370784259583013534338502783772436383211778847904553741035338587479768009399397879874584876797923780336411484639239652206628926463303194532202167561170568711594426558921688964643880787286735634863703968310849244301941101729102672771486319044103498035553881441944865972238253631317948047487817891961935672150257702108992543273708077796335644441680760597757202077165801855168121370458369301783639133873202219687424598429837765363268266597540148733830962550417444676208318431794223894108499390063930658993092585883207085597154469059429612258495510003242353905732902270335870200387052090507480531471156501528338229238081583988139393908319011672743706444078751666654316426786537947075571521381639140455205411291765840166462833045594753986876782093807678013580041090365891216603212343668456913654795035523352093522684380798794865021470072731605887005948563702205646320657491106508701843482792400000451159377265971986028087336170588582659392178850280733753954127047375384268421636899107611851039728836977879644213224037388129502366635828037507346118949198277803608836999400893046468007951607584815912838913188016821730608181879833731503037729068087171180333157923876877335299531545359854323840026755909020369262489770897293121583224560080691326475747128457107622630290366484350433686342433108542218178902763447528757157382974434115872570709031165780303338990021945164545811513726439732463139088842349805483663579746398317751420445015985981186143254197198496522608765887018996331052119683560652723273215567978827590802146431473706948535366261482403400270398315579770950705801854149546268037537080251709143388949842478036077487909200093545583157629203817493581713828837373994208193306874510001425495468224458291420648336027492065337205655631489641003089779452384682968181340645985804353504200881585008683584138317481958337322214642712478346899247933946115596452159704708150144585470374638473943512352810215338028555361462213266704698634749676547381967013878227205202398986665612680134266479456668499468701272854514813632134506387476971581000697564959739951518083877035585950995263173168825231572479377811592009441551533349364381612240340626390171770647130372476619914218667062426058849176659035907267103749158487936512982816387615376054171671714393432710656786049772681234175301387683286597705269921554523084085163105233723549804382216017517159662279450536229384933228337263943247957017295607663161558199366674430918806353924219692197060528914017959220140737970906017664367833596721369724997547648796456817112401420030965537816231530352380560049399748973216457597265121942018923928214912670785450208092946641470612996937061571105758049635942821727749423034573400431376161093079277819663433441120874946252420064411185547363990309784071269572576636023311306751974828273403142234567119710007778744322466287539275878627247478599052023591065997240808961024113742503718320017356676625071584067746726825029991962121088886636257231836832734305493852647270229708837206043941835807952061393864783589210494742441336360011945427707272788427638584265980513518373580769478852491167574964793034291656616845245586912614576037290153957494194150755257770625853139813564806497207159448517744872325989528587982985551535452638272375685376641597862788349803941346588587076028593212317573359841936395793291739350563676772472567222955764048018451604863448869435408461004950584872734800508730222361184380496692115112262847622575723661475184228401005608511075617901175050549568746221400740825472496199353129175187469781829444980063184315841898621708717749591837619681192617308584664788615200123502568239200778726605566883987177884981149081428890977704963157287851238365835299867494710479646653576137231387072895368130312956746156756158688301939239328190417309881919418444633574002640427640121160287503517484714710299815746622531432561138272353625345005133726369603751524087963231130220414106210246831532721497861386424910685513920082826828334653974953489839622345837217312983958388238707078628626274977688518702934144407689465684540979197697008689119441782478987132042013014948691630114862554557106945696954292653870168091193599122923073024687742943078990838466795945113388348308277476446305420472282793611545633800382435730586308615845828882258804855552713283028020304237635602353364287892818265070218890599376985849915629114795919885008326235781113398284712747801236337111073590641406916610583353999615425872232234059114541501704071274422208019785495478278653823221588931448170930201682706398849295820425066537764853154898444330596771802680868653566906000652749374484537493762922402224181073969929917029953962327611913322765744789698505054632631302306879388417950185116751355021623023059743692155684373092049066700040015145808435885802685706622577515314286736655838260252818741692259751501456040705630047816462121414074980956783777939540861367168437001747757947740649685001530304356310414892151708025076876151571141153554735803181475942874742413457640645691863670680618363637042859082325752764388419156948797442399771417207593548700865743822716142523429488104758420169604744280859701157711711633173113019150101524758055297585322984596358228838424356440012946487763515228950579078106691275029421149744663437286528728032002983979715491182421560055267964409978113291713484933126100047515412055158446005470221566147786526354410457645693042404217045876034193164500853879749578926656673374700115027211673098876119786113327238789346523233893596613720375128407889029830365453240938643955988904745535274165240948616130518699559788346101105919601419240906486888524234570667912954373354023482883878233258289363868501209983329555679912200214746400727338557666156344911456354674341870152817569066621305496813496612327591468454528691987176103255954925801052694769886456410750832294709645637671796187261632774071722326770930842263644738017913208614118127685587451700283792765964355232568395282808518167436126421195663116612635283158184063762324758521732623622261024413656625844498348397158178678003650769733951256623473094903031986576443692047980707113542655162053365128242195675550213009901661492610147127351520256902329208154354140176710432756774456079741535048385547811137440760615014188417855786700914287949562394109550713510836045623266733947622981234021529231356994612184816394858425734652633017503295317213098421149592832840670305832153977696260111776904008638912281347380552832911969192943669282340142864290507212191325956546240814750402512790480114748394608343843156549174485567020153486869380706644120626753417464746040484232092017149571290228739749616275678297772571818918574178767017293147609570919893123855513393272328179782244151173282788144063956125811985536290646150234415899186308580373050309423456502281336887859254492976097147372605265656081413762763571618114027410114625436177622074795070408018470482912702833260359007767420339833159404041391258650654029370481093731940855254402670455463293691134561343461738837436600318048907160695388812090206847071389880506905935504750997644350805357729840663781976971483052614575308506100784469639702310890840455307430917406839426820533693666552223411063820125120419697520629132302000034500285147089709927488869086504450675781552666288820785452971124849318015618043470477304238507311652283656598204849458148408774280865066732790543808285647620636967582323534455449675310339507841313667503753086557039623401125196411525622862317338977627570312088169522383135865283976698783035906297566901869003234493109104684419101841839550485273901463513883014389928186393219298156332230127806706720574828753595920658550402735755358568386788960352085569582390706491993074050926879835728519312988388096633666177457662285204883758253976805307875973834495362469481793320281661485540822360136618315521697025484024041425650802281590819818550061663650407410501404835989892981662768158588637780106813681307999061174981793672748909202872842237074504075863974038719439406398022672559662930695074154531128897228413376118554413934669140544725928071731092703118781732449471009182399844102194503430466616456440569505451722269818260325722282845872757062516523267273141670640486920068846313713527258494054805065836201341340216871568999438120856384252850482035359243865405841578969793240705276684970755125464106463712565782517802176406965146385602206241293563788808172562481181923736683039116548021277231519334820572479475888232454374030290014573040092257176463609647245353588930188522534667532678342953409030065059302004955864273207612071939384828762783324134316042303685469225658070583997295259607941425562963568196329890882691893085957227763291962105955962555920510793922400776891139785286514553121709241292029349250210905247579203389610884527942152779541087933788967373630723415820138166972257321512698797235747874012244726604493045530502051312755192539266573075859406801009688311283419914930423993908740498725046291470863392205066573981848946705918574340514787246926828498768250164069137237600983832115850631681980013751807761659644602939500041200805527806608191116659615506664821104781030062461252282615551162278774423448349694446618889510410165937305454414977351861465628273482587873319341055457970781830710384851570477333515512481265858886681322443795771085137979208989344649338647356987510580380582429003055894521916206070419678991925534291919923816535100493573597912511643644262578212944318344505904448701071461299544959054210665785088576842534991172929923906979035432474661871667062477259060941660250593247864254591821597107909879219823873718795125575890374813795619618375492435985890329629869244746573049090958335553307279714028028189366340777789793716339223203253690970486237059921038628446337395644843743903878851078733071143675374817684165425972385683232555413702935749712034862503500799834878422695966281420516285638368023924145238289056470034986780729335163091115148803209958960787056713063486197324055307167880784178351619773507048493033691999746832941098145129802779087666498742708161449971628162587358237497376564555456903075905829655915595006031905447652816114543978876686211384656518879391792088507735409033308141316018157155918919888407650375781760085789065566715400851456779430677697631704848480112149741839847100383132923767602486501487732717271167648890815296774710263198571180815624712618210540630105144398854498355250679001767249567713277986512571361390746547353428891393269173924053885773853631167530438850838239764012646299509510131941907795802704564598997755951805978527470945109827267103420459132998218880779695216514761266672094226051186379263185290095759737162478531383737424780031979696435482797844094403688314645836137958706696677298031385168057877943694518355724551671683512461433568688038341405375978097832326471457119265041671749951266033009861908560229294127679787001458128950723353394265552324722030327601408535525318725977556498999981012845796216251575255845969631337490975399709351897903372256333813353488464678478614216238007704073708208426145252857776876720041728099456626419558263116316661645521302367534374919030935435957076929918314385742932577527790471936159814873692020732002670268183597694334290890068415131961707403069424646100045872071334948053442964132393381879160403684358517853678799602945747264260657139525587882487343111430843645011648619009884233716280595205426425271490654523864061876995475993652313292622411749822503339236721103564914130831153303293518433308968451400578684335807980363668496095297747285304581619532749286433851900314780762466236544415724522968698045177185440407785258524488171718394155548092231320959026273624268692351675406651874125294443731425774564827603149216353958331451136102780692668702536570388634637578765843588535613141276062930732904027868329419093435978535063255211274268430531526109996935723322492865546722360875190713198017034290647886093864489275325797656475408369193692225843520669681364036258623746074944752166856497711879558782397627632575837855952203159239601587725313897109705019916229435210782394996623353133641220094172232237459769871707333395207831103367897307553193577470095712436327388567289186394002554920657230911628149951684812289843288990058378741066225153134698175437169659923650488278800970030761794650035180045992067256081582979858463743588163048245084312977235780724597120383033688768693014756382150152098085628389374429110248910156434542153313181061773198247986533826750426551993021029311264840002506165729835545767974924627735355120833180899662951094333475663082364720219007132527655717467788182392221875178168663714503441128785616717728701309996533291025403677858405282782950038079265463077122012214482104922607929566115180477163349715761706295973336768756296668347169812058309532289967340035515604727120532917763040952368912719248595333431909728782924150531864812608565926499706426093842278020135576231465967132471731540769299815155377744610630936971339862708632523120986760085289200338416488637954641725490571534556674455337386813056949209076652077735483285804958772764133243267300540899907213807584768740591368124992225706332318553153717494022720354443270226640418869606744878881049703334861071096136030098457225744495791495087876138562512938367006757364564233320105438662928164575310483904400642318002082725066591239948138337812325398493656110838910061692684341560415559079491648484316358183343192299866610210906435214926584258095842605820991916001258201826681735027891526239302757518665893774659582849695800468293241245623357104788396486506379380191255109909933343028623661997263268087152026672158738711551867237330912904148655978909414324850961081796014502557756849412794889700529811162827210898883365385458941798895686183120554670024034772039756091262778414762247614074096505609042428839641257626667856988410513167205697495030196910214151187381214938017278985790951651254424212762761050309398607772944285677402366058323186375503748618384750759207253294434449755681257694822829444852318580447274956959689155243033696823962916319866572918854162305549350345565138834718043855285167011249070264300347669595010838909073503820052565590255852545876273523849835861583290185776980160792727323256363731558628518713449776045836149523153327118378484597438692137012394317169995242730309262158810565005706577185545644793149007108890082494389967346039893975675934354675204461420357704964471285334635650988820471794725298364428698608103224888100638748220279173340088137113203501703210862239547652879764154592980203023127316566353598928312611631922421312151768690380870382843797203364288766245860648789368706074147774340888621896662553222424507172524058453675169253701734436589907418832207083382482130503200948973557485635939525947856424687097945501038102909097346243351732320680172723891941074791214687534745488755608584522126668330616840080248397996885565388065455655763981652412421257917294152707938488900173332452676492956667058413807635858700653349121885597746384327461007400337253063637539518395258533200693564504061404549596527020079971093222758085978399609335366135915992191320208593926539011857417661949136887594362007533370137691738103225469077427706959086282663234630592694395230632804817000355848567810427689414514898051437274588007391292426028169559522200953601127323951400301772617174328387938900546923804620832917813600963622221931931835953672272614012446305810214972466790605480645263054305724148110332684781486281895726632249743635091222117276723018240513076507470212197891221917464971510121732548594429547101248743542682530369927828715327231993231211309717066284203567111976452059535999256089197904989931632854905703001336786674564284795486849928323665693428258232275147166639049792042964567566603432805714984499431045717201360341463933438586205797647692057075415535031099727810214709657971519540504187971290193726414122132284778021379861379407605241477150059154961232299483271408505892747651811986023934053776482282320569172692243669266181377047350632481947928329647063524584232606125328140213512877347475576862066543208426717721848182132685803598063290619285568599464031973181840093722435822310325662972143817174226350413374154592294879240781454587254415002598364928383317753891375085227924436831027180194333329060963619040939848855249672860561649814959197227275011748571575157618464803343761538378574679780085838159817409693635646403956498666130883995232605203507989698159107698808631376223064415553300645197044895790593349946533265930055571253620141222340536287434450095261579226715358787462222551721572632960460266225925369493135210042225335543794742607515368666242230405294785948721663782644500973319739902200825597356397623819743226391735717353440934062892163944088811951782100971825120419257454093792213309708303460927442190006244249418430969777724489477451325190085321818730095453958940607671120669574596902218811376060777586984314371675685281212920216672460282585845373000708254771337144318659689630424792143474021944396509809126970668353122602753137244017277443296560152062352409472739362561884468511065847408250230717967129915477138608285078861770670455804444240231842955549186273587807437343111760777455061212719817484055250023564069830426846885494050668663804132896896677143058532143617526231717202451889091289744568663479755068646299610808404721255023442331562389821816368001798501740939175795258571489899112227985175412546474688660016979619072818947887497829327978940014820124111152792547239618838974649141985043519529609958450736854355659842017772386456293252798642815355128175785231555838812167116111264484439898080382740150685750866287798882631949016382160602623533310630249342553400477886921309652355671106970215902324680695763566437007617650682318196862118020642919173552037914443640948957293299113826733510964233599766170120467325572948781231143650854295723036880777803091903351271195663512482382399570806258626233674662464784220469755046728540084262498103265046112950380711675985162764203741857360659048060276874547343712141339234396148654748664338564656871325765524856609987291827141412162840292459370759651257225919663477528788210300237156004260228751191859647370593424507018021330523489015017407377659671586701209819291580531137298312946892733004455820716525605753985849677433820455994430238491388351781073075148980597630952009782387868223323307051320758312729166992309506413660862573400278359839586801441324825664421644755588922501141732432342283899492867965890250709749224653938668215847076768809861120675936985764515092284898424301020519646746634987014776209260428192534938765055875728787715629293047525021714575934453809440081264917983269510393190716132617498464702528134368514974750254763837507555846221162415816796032935501254621599896485962841228993649882181529642882371223098332897460904278538312709801449429621107400085237176745859020791387116477134123964769995438944607572845274183723224110549529195860473029021929091405022219226115387738186240130275865805222443552379609136809157832003298155346717703406272220942560093928717489233262474173253498324030871889806815017105650039502236141143204349214868696849552943600673990585019247320146723991780231061253476392576618741150172605835339562893347279719009655556311753331356311239687598511001480634397063098804991805886364546731518946879398652010434760914627070082890158366460257810245522293580926262023299128715016561146265556121989239893983616831360352764879401517934820643495015738784982529666958024225720221167802866089159250630754791354980048736694798520655671200252147158158786953000584059516701307617592104139465977069814415652821857070559197896621930626898394911909478517473036676339460523369181824507108571020567691137002546715468551242838721858676959244383502547486977087296062248539341694062747264653140492853917747383394810374990526053478855550251799256918361916544018180740906103458154287133521550803101427119553221923204001993729030309159545985427519062500069319849132318933568972140749485368459981057025359665068970615625589824826374652556228144032344449479219481414953388682430275079173656501995017727112563230406521946959893343027028979805916618389334886770989393925875003584512020343707913394072934978491191626691234240632225139939365467554506285203052627920134943727311263354414348109780539572168982660757044777375602332291294591131527390894258234425644173450079336275907761532378919765326226714209623314972006162396472714770649408966799691993631305715287794294809225204008452861275397634277444160972799278302612844127423290039393206999951361492872420741658410422554005607745293023571679739930410534149590029741705103886870769526141755605814745031636789641330429699124336579797262146331317094797585797246711796447281370203454907372800210285891865249160003538045203760536354997136876622660252398576310348426105177945948477968947574040919146382349640209605018230524210657260757137508445831134986420903815827039805116200976578237507645070364903934840618485498858414141647796710033395498084153571672849646725122822453128442210447351273084782546766781695722403148924634500909293104710905487471565708749287429959634524470603249236977981224392786367673660218644069117577273147689403065661926940940546512417767076370684427726630507351416417522748955528155321607562275424808484954725854274907043999995201408960326643376214015474130879065248947695169433858730901224433705466311486978501733657111100409880166287360088056447156071917568259033620050854502942487558708819813807472553590644382087712054927731631378712580514308397567072982864002907421328560822502584318967728909986202664976143178131870413678424445585044327711618718435542055649621578304065671030641639236695391583318182625551192125720154598150271526244189222025297811177699031390933645495018418590553294968393467387566666769060108195182652194452656593928269638719388443467853344362165748622295291503138514483154260069676626871776360688838679555434559480024334974760174377639393422421832254304490912047136940265336514561203606779776619153642518930606135070475904898850258487553342459814672370678966362155925638752833032230111570376873741209913301719659713974079667273766835755851297132598909826540046690467165220782418646469761413695611272919054427578496989393807431547348883207983872921725120250730079561833270176544684158903809820705152241142387732003407319249711624587083205263455629805802351156415507051699461772667640601063007999325038034238037174718462790713301303959949275825094648081883152088094126394740024059990084149934849369094650999538703328292827153621953942700825494791370115118150410679654262395746535682607126299180986635204350418089445813129741761649008366340231377683458377957018474482934654491822914073648488962744083453992682048856218779776985021076633739877323860469268357351537959670418694480393510818786136638977080161079416551793243034615384555169012720589195559844022971859909631276819122997535868845945220465146616128764769906579350838038437076923711077298927392239224426210849271019315169781683473903970569972294471475431917987116749238562063066609505812909025544126164111031652591616442594073289611050274575959072910977213694128874345399981194945418057913980593885258552823285630306451745516714100430528443332215518948778133357226435095085450879574401195066796698053315916690709476638680862652284229376372585802019841348548729455059751629312114579333024317066816609452657906344355643287247357061062813924882801016175470373118167679976379889385816480916805581722605338006390188776009696146950958838247510736718097116391924974993470382262715218278387598379282451274378290327424968320838122228102857082491873594420990211077366703013532269653286711097675655514151553745380835229226406434804110464472016111526719481117182398196008800327963155613973055732781632080625118035562893718127789075348857277206314227242415394142402634667613748945269329671618054801764710273328803595284931318309930572789941373465797220237280638424024902296010105335522797370630284688614358544504831412875047519614913735764183349931304370040874099798923048180919729672095461994860065046902928223982465637731981377718505333513671025647640233463831564586640367586317553152698270446906264037838557631552870405138994026878690528699025906654586993377074210405257912209545261981647518710901811328418020623887128538340376720750649466565579517226774336600181806325193950855830911100439949053952975068181185523377474309379909908939844797082375030727541344599446807341975482859838048300120021627859272759558625750265722466126222580434026571693591118381559569595021403718066266171145382710332060632740041621062771267573028306100966479526264219672742055189482653045164240968304968600118974091564708851016567075682794429445615993872723380813113207789912604220080207229942952851297462420198255600049565175881416258284792999332864254074178087806456257064521617912621200477248997869907543124691621174297266833717830427514319754353131876263055990771245549145374616132974456179974161475504684018476886386581450014590014066362063978073657226019127750112517214194761316569327198395926160000130420326819774322038165035223293048723311588115060744954451549856854224760440154242971204056412077872819077925610399650333219193719109561472987313616797240059859618141176175208752704023277067246567237468277101806670525368476777041968027257162174183696138671463962786244953836669284370163056092523463514064305398183813228483946637084444862663819476564319070413312902630925374982413183720513403670791728157974961387027794354510940568283407740095468245843984945356563944991075564763273169703110129983424129492768621906623910650104657425118843271080810541703452812614864438293112147671887759899206125680116532199483823424158369487242792097813135359233091626580484436649915351763823703582829180523627668507601366184700171079491289876833750021950606660181218376865814787150185735087173512552617403613634076852046911558196510713981705681718654091824411632130068164651259736045740251133702399934201514922732009383772193195860979436830359982433589853372314418930016074291577154268016177417438437896884694157140545434533616932998446486732367801671106172021668825531083566185714287580212864194227028496391442116287102569221106296687344131870201111178534447842574900863089400027138470118181164784838889255511009089022445342617001360485695994230395970785940681516260211841049169269464044474037603819682335361791301106382663231928330607804328813788121789286372786339451391712963193976837309718496195383594431879186009412843962338879162763423991399811053815794483998927990325241959658109839378169019486939289400587675199617364457214754119206950657430618562827668497804804965980156274548273538189679957007116924893275717097262662199591425775790012048387760633572352891699686961208027141135620266436994462068090771702720045261500908651627342268220774913011459957237126845261579011476169697137800447438373052229804309674841414328007103926246328633986689165217697642745142711249525311370352330190836794249252159211656314775823116190555659313825432268218397591746545453421843992695434461423758935322315847550886459498187324242178782093265184307937610580085460860073477051477783120035948774537622249938740468276488535546376254401681692585088675548550658673516131128961303426301389954802733112455740217623334641114211385465356829839150788530842225850325081000784017157611523090776977879895175346030470742351406108853306340505394640654383249636454449482719360828021222060704589503488321407703822232050360694113484386671547539503989560538427501054513500857951341483809495719069136049198571346872475138608226121380856942664676521245953575125631587967402007613499273459697001348957901519375098008911640771733817910022179701554589811716554263324196437114055118160611371019256797503700823528061488821470539386071333069202148285821376033116356917794497887649132588998993883816719447666565553314680668353490539996666504381627713155326162850218809333617727298643055120105667758863696064534677992442090069049067282006712221475281573512466938818582419254324953898693896464630909957065708269868978388002235527984653676940634114957739719005207864030846943428973466818963833308962497148308696321602655324331598505102160607943278534297914813908460059727869352826700467259186857997751611056482603095046956952903724900407464949359822325443514839831978928371925693553103146769268922399320111322293420586779629921392350466468156075076289037398790647056940070207251312263560784026931304372903296505366441926505262744573464190292413271506328326178973042038961753444690461923388077973288708444891115921363491986591560923555821529659846880334057809967011962976864026607902937708036376363294274492261054923192126629199137854908371914643682076821770514233569996809599793607009951824883667442779099411764716782978632123857323418212874045060323406579675084343497961855760719808298526751615789095630757545646365025608864527554793140202293867437901588318690054434966394429845130955403939104237329126181986836353277718428172606837943324190018385839904432150741167045174311480988750148623267166860228430667815256171591029575869999311386666221561610243987558045128437771246949538940040096717307532366345433327932266850460005131233733300263692050929909206222059359743085072817449644227413214014252064524989689368394148564880445855202141175000570755798183312504386806106719920901614916139437022715724187856331269291889649254684504817101394738804700663662119000975724129565631461500871856311832145833330394263774600772110933020529892314715815827103476607096858668050834997783834539905228547420988360884729104351339108268952955352970759143852492987327186531464891187947597333604870194991106450711921733787345173012575602216485863050919711879501213196524079429754589816404359423385295380647151675509597366928847362795345965471874011426117665560138115243722155424288668795558056607111477932465649279087619233322394411665560045438067523730765160311881218446878311305335836751695015517714240104907227701310571969141809286031224411382385931081626442634403588631335858756102092407853278721983032206704522168738504934971174829363549684465505989844360964248659813994325612517051539475160952029194896033366301803030528714348786901751796259741613739949245615064488985646362892986273835912372286305476338104473669240971633611063387362690989961328751255059613901834011615001434067864120967275959921562614308212945673847443809033674650943997659697926231265905177323191008526174978617766691190662617674226553409300496932042918054207027008815322875568934843982593658141452896803407922915729309172196773595130451485055266622922218236091868740318538241498845566361517055729952696557380803707565504212021708357224842274779740209791752529802910013792252658394158407874879722167267168890446579141155743547596565158700068784136503672611004441039877245875974062842378700998102478216368915898321579712844566396069646699090156307145026378670564937991884378563819453657394550911639118410989696416788936379734942977763189669494890089368880417572063271151276813948327904831492608960747865833378542342408137336250994825315239680332849749565941968528474184370315603384581851980644207378324744272907996878680981010653403519283048605376863256425197657665441875728010732535793859142028594549343719776581164280394103514734629162320101645324361783565908375238783302562515815765367369966156519348795405429618918475066095743594242302610946376422820562888048589252181684766087650918954253245657569921744110186035648327214557199315248516718189198253952454850873554121470555159577380956665175755363362745853209138261685967435260046461780200253375012011396517543902923236021718027895459516144163812249235551453060519529790421840441482870168705015581793015349888952382925095574704252795869147381460191221389550985006811004766186931696666202535665095521583013537455695299756647367048610902656799923431378830275885512607331759070326723978898084336700640234228426520261477916360093847006090151863703843917479859898976722971879430532492150546379936639753871353347453947711870303345294151247636122031184141413505856224557978221187179110660611404149357144909895158107753610048095926996117132535769903417747876553094208609778990983225463639888928568712013039006725162076645535423497297853330882585408763437525293038571225452535587541957197149588975962537676942829245363647578063643835829952143180715428818362699796606060072475891951094559642982556382159504492415901717513215468766206185524776380757684362266206464768969059790130233460132390821166700412589474638279521167483645226054795577512417164062976510736515446962743317494511811548208446083321187934257669409480420823933728443230412921504285520442068489245073656344678436178965593890754257431295779778284745210992037160027925223675675682073530547505098144166875223797334235583450175021384336621966945307647879229507542690319813785156147916718796488044993580525989159641277449858521098036693018153217737748590994580592993731707005285522885990162664629310531681245415322301218139344060673438957918567745633160948150630021058139613854554623992733643265707579268546164859230176587501722352989750168818537373622877496586043709754270933145073290450991879485188969116987915932426423175922205900340296529187839335228900477443762994408144816899590295444931376768322253842801566517259575517136327043490152275694698376743229984330667299411745319492290120480712302512599615065694700331107387632351148517365880503853732853247558531555372956873075888818755968515204467317089006426754931662925900043232428331137697010374526506956260519417088411459646586515860907393488389025901960494918764905414755307023292093865844924296309322981579953508574430017522802741808495090483214701910624383513156121627738936472998999278195944234161216097729429184370834731471879646269248713549046650468530471700631902082874815355594024688252537803514476322528631780350005944453479742352795213056905595506400738809354818672283232867000464093260836390844054984958355832658855919618516587683560766020005220718813683245578744539122009195060142777435274303189118003852860317991597562182489481020471214539472992600554269819431690650665740500784360578390019583111298306839734445341370959949002100455362953548273267910057846024443061295582095797373524269636103812572345408999394729991986158200639215469064543589534743092327696473540915574674465534788669523138945090918510795150067548782115336597051573593691836253594539809855962975401261853488007632503987648905509181295529470589890561085477178739877038753067417174287007653452054960719019649327711811876416007020291402508740638712309999931334391631157716189420866523348541129142512954785364718916436292430341130249352211500689755877033591851228901282739226657338291979208260036908087956113697324406200158909858877663664552887532725129915224452583797446215562105944625918302727272842218993715446951493912247493366024054592364965022760372010391800210235504680220300945058112497035556660839321557247105345118290432512905692237245182960449254301815328965698337118697894195525650813208139628412289498203367232649435028395393232666745885590704663458340754335420133586471693575079557510870476103366296267160501146044674898214936664741767596601746530717243880435201106848126889198191028412583735893880782610339911922953753639980013496566486754689219754941043492840028517538809075651542588522939250102242962816262742054377724994338746745132169150968561659705096813549678804958457771956672633853506213444159162888385427543081597776675430805162062417044791706295632133536850284073947924997687957383653482426086307843193597005225495911765782598519944266844450155730411494283316435254998459994877486875938573313776796315414763370329588965890019132133252557196147843113706841585117923804790128071973853957327824586967263549808330387751586517280389593527340059684205544781516568363126178072210509936728778691283947514925599563140176308765037345857005090850910994223980672432204928049943766869339499859644252706925596955890247773641195490251094968134673663902925805294789689502697101850656062238100616904849843930036869411899075572595548870458547616118077124946087835507776898938770943974168411375933056000182777575001601951656857785115828326749151641177124450427383078554446403426946710035216073046165951880745166513898703788583424301257716395001607771505929281564787761669228663373623328782354783504469692436485435418997441249822118207934378919584056735882517781045974902748285199085071507785690062088404969159919201865429939110586882572882237918952960987841743334194534216533786461457240332744191186306463757289502056623695240488966945961535652423463110146108742616607890839216850058881065099331998609892312397813623747464710820251157167261804546371424238500774671191434965443130053168612644342040411172379717638554735260873224272513255869948945585442149748283179274113798185088752855604120305977299046677977546297866660302739836891342045199553112064471317014309781882864256836106804215456640685785688735360982846215812257904560030863086894446040772197697589523180777315877815504878951436432323725899396881670345611276292518517309077170254949402976019683395456990585888060333185150666487554418384894946884167718722391237380871636897405932601468194715087796754079821427359006672808907204107499157197152521960562117728194413171360810203220300102131115584163919732214377575900727693951264336151099333124340612133904503192746247939292457927246749702958144929950812663637104369360036281304263658803828662315766149894184437615220814399124868630481858734700223820976999536553980618008241907375096939493959299610758785672848574498297062530021291460038004853621308793910649811825604479130817482518175769623483572550771760659070634541175206937654692229209169784433597336894309097246065203098221191526705270257155158373687123080692685363626341158435555667069869905356554278372476556243823384341268363241420826151402736899029999921892276835880728667728217752675829460253697312869053871171261525391963534466398403982614838471954208286925752308723811146639511250236604946081889067247205965418644168570320328911964249521189996169771622602864768778884333863745591096021559324889147862515587388950217339474045169398493468715016668693404786295451266841942296240237529759347844744541542711606282430113189053760364202429423178319313916445392411522720365497028840360129678210972448007787185804500297490898802058412086065920873771426258587310134750639613601387509660059658652520488131168778104743546197721239081579559697880164162376302610397845557556505351950469666289630319754863297724651645162556592630350610164797578049513144590919081207554422713859831677629131968325294796930466194530028066343159216384494393764227660289678730976373047486572680753180340742187276825489226375070069564688119689903123960057659182587458316025701201765224252900306729449916189447809757157125132271577110193114986910395667155488771666433535343931446122380671565008442275784217150414470609290370499330936354437159409815660571271293330661933320754305959724455939420190255039056804147279574837953554052004915895243576502043235074211884534784630007731984638884518302917079583267783976607861449389680009526887008684599510470003683582350110540399279535615134836062015751176803152935249336119974174915551348771325494363806134773588936106016582284495466384745987654325241829422542833948974656228282008066205797010872284108177536855170878215963093966519398116145022781506933590173297740987144278415856935650642493028029635908092188611988191071096589165210449189794541346033418923312828030677997761935399007746099405697162727471275293528186970268315054618339251682705987885233900587086788410984333125537312508446412920646628855209417068948206692999357426008699697046211274653960454264455851188269972797889810554413581543009134691069710765202312608628293904063888358532036135232634039914921807402379781638707019207098088602406003525834445944605864492025530887509474587105878623887630768622386991627300475669250922097347479021128391882421026493815315353135721779994921508150060577856988755367883183205394230034454182888354933432088041863337148481114948677920618501307908971879349233178565392559329584951885397484332154583504498270951752776247308375778240166734136478665972892284169793471440510053632226738878617053449302398451737255315369003645802859835210185435354792320639204177284285137546090142501987200063578677636950441337449959670463493052701417447851168522111836972481289060391142641744028559598669881255349377596666519655310655049995569092277329588399192390074187913156441889709182139843648958927547410751281585601850446852486569404281591054596903614930242479310963874154482694426743890728883139859341490996699934618358782507624779615231708800070594134301643038161329958254532298560966735683697087757696146413504670231366630305595642852344193267065071805610740190619360246533489394784960749570869342462014040948738217041300151468422339949337350513494529012654199783768950914888561034418692186897047365675507939790708960581786994590328427695373409961891108576284725954993207625661300032167055726599688216163010906819072094155644096619875050515154718179094841295287142674010975295909836790248060575401767257090033697922993811685870171314784877190037974940599281336075757141166415131820771080461421403621337584557049678746118153778883585763483762989715462749304046803277310691550849826638612656991438765233091424246362130292226732173711227338655923060878804574168221059284021043075911278239234042746074650750888272757095859062190992155627841270643737528298416088827260723843247449158697438761512982622181927722220987077414730848172915535988122525505310696727593558426569598059824891449092591885581898176927064080012469685979237465642905915917989783902304498140256377381264912538119400453468647142873743512531447731307762573145839477526938957501581011071687602492034688703042940276571860280773604407275188033060159842306357529763226641099316036402223518670467547906951600545252193915921347265070957691733502013400059518344783140159849959303027239505272346825351738686638675736616777292519010276050138946396000750898032438124893325045335741025092966099441166462214007201150551522951347141617219748816411271237311597727121775383949154988732564545414934306924706903240504677163685837320109759929843276638383867320062051508550648535884434583810277220496848386511056751791789327334154481422324613335055036089016509443968571220279428471356953841726011685514551360627071391080102935387947828384749549466485033079282964515535001212807792566207026042274863342070455268466080304402513258736959227364848103102374709147110679091984872502794668140814548437930147708549711691698291762699461063792109767234763067160078103270670807614149163720284598357912233293792578448168872010520481392441924055630067241516084550963531279353259410381388023446368479118333373356615571506581791592269903306895169251996976207779467496982602119789063615282080916241428350541260633680665898978393214823402595381097688506136501359037714823486554772548561019262492681433252207555050825996023274757165152600419198874854923105115832065713906213861066915437992234620753034644634546232708687455752324995601922269129511294765059204451117543270503311216463003525245137782567678580175151248056379652415265854869997809626345047452155957066973741820227011587167262610508678972016908798549832613186210219177433470783817655069496445435919233885288411624871144530187800773032619972342832206613161357695698809325418376136662225794061743274578938372289231568301843234517470320483914212698598826698065992598016702254991155217098259530661822113553963704232296686000138694420333767974290683384671930494340587902921757965727388184349120631258004881539189947672616697612377900511413036414092513006332098151937326583618254590375975241459860672253104041632307093653309101187772557849561264055580234966613234529312108291346381870022150477469918337112519582389318671234982072893924620651420831616791676556206361007166156453879892219417386635065460587532497213149282164873414561677725396625570368149112514486317408152111995477955110307762014474474346959913853379941223477636679881396908375204397572274784119204150795805323823782702396561828341458159047531158249916969671041732965154248983176649481533311755628709750893099464061197936710844943303372141564840908757226398522663277896633873180511551782515196615971432396161301507555255728684600062351764020555792940123071019052721557896636430387341380860090806000988386806398118552974296116029247977895430438535326171533786848071038349613158932188729464728482934211504769123668027322251773738592029542918897060874573910283158516818083064867644915473858013176548177564703318699085966157405738976930174298400218167717553832632439841674444241108720821631777114566141149928307330521681606761948190734434438764621027560519382820473665867406420242733273797569042049835880445756347443213121809076959121554703920620080807540376070989315932145940782435176285847722344678239662642754707899597244641481639600896341571083565474733754279904854574207963017371183815605126822286512292894349440276517170597377259396492785903693354793808238795635893076600639634889410916304288793262773712925959148921826936362086077327372748762387151643316721943549988603773699777145072532395166471308707960988400312007065683865309806225606809325051006440155786375383278678390966887047093740280747842461857495974785258765778834053982066343960380192475875952180612860433181493684172859362736532035891052341379618019289550153029917599482546924480797305079883001120250516271999900223041387561582496911542360728625288349856998519920346607623233470901685769921387661483656429451276973325113514901896543099692820347832293661605188185990023790938543323807161180300008742954992460928824626854937498630183693274652036057088667530829972920089347601497439543873494567779787645181509884940618419738258231445828988216721821114980921196983694348718478357273355440105822343578865302937616791654570279208345166936211195256980472315725241966668505224903410981848714463042867684700762600482549168111132687198663888759493502479947714078714938511773054846473427885715462560088643183863931080791923237567453865436358392004250184604559095718255766041174653235897160810429242973551259604739458934125164155387657056184795107735304275496070210917640289716705673004177536027255209648946602768820711669240010747953371576846944204090797052871479027996085623240621242510235999592209666116314686427810114359792772680950002385881370856805521510647978134228015406049937174054036233113235983590950693277325110364731373977681471123276455046759422492876721889902161688662054154511050927120081011705043797588279950519160564961575787004911093503545630031268979400355976885443590437273591373366009008680626662574455283753971967880914069242588085831015784106167864173129362498229638763477864713241615326033248118189308660724635337196140068904434898630583293957012735849969942128715175565592068582323856055409875123184210985941665661725360319693831805624550948067637479602131399413442316154829272511027977788290428901071225765902461121339284503772674139432611148158242913635691067910442016006406428636279111184041655398898285468327971109248419387453587753067021920164790806613966513936499704734933300955334936487138321215248164101600236802346110119716846595390217405285456140174307569009326735088815456501646241216049650747841592142164077889478852794999535172830760015899269417157671209469477907130825316265011379805075538890810995090702645108529228289176751046295037813219626423130624654702224886886352454778427943723111878821926262448544084057896750409782461149758508049660893841382880921926152814969239408385546930319364200746787278087878717290778183169577606530296373645795239729526115038906880022502905243259026933497455653427181858054929617460623816955736572082366071988264831060826079381923666845365023711575123050833905537926668306130927440539289184606412694941156282498683952153970798292024488252906553565893383396987042005226291186251123938358727214901007552026696548583166793025459443826701930998182011408823766578075298945922923853837009455519056757466598345808367628539882850067793867219178329886875084885143252551815100193743750976788793643767252955694992176569750294320053539401214830120948309450677074256607961494351804345086244007198151928890677421274573281905133101507459879025084050424370695969018815345518772607783918746330215330329269522520336409148034838549103973341245899246908630088778108929729704185356245232637990101771125064149287884564140009272574409356505284046690259580494927644865666864764793326748167656050770376799523442442649351569767406508265828332957653055670484409347094248921523835449789504032279935010175607144174485390992950557152439218437932251321013307457778069981777718057589337774274995862338902050206168011852589240732400180116449057574141841910102105298053811715047358323433685054018837026611854439897059833026006689347266164688809669929891968333005905043820999224852303577737772992203292981418493129584061132923434841764334708779482213250965529934460412489868055737263948191869526616326544708324252888988398241539441858979033558812526342112294881725343187995339692728321191935748311326655796189889828990842186258327589168185083950820390088371086455285465888985143194084613189538106286776089061905659436918330126028606097399331665439827829660869693374161023941243526151757331153709451487658346699689173234416815315276183234077686262845304417672006659602151455234223213851107987575722584195433733490936563022983021121700629670347291897189471180376219255920303541264090289309783111516803624436353261046844102851433218944026381526411481937171170655823411622332787229091859890826043963305137900461518885501264977379835300248936526624866117280932375576373841292647520840314500339229047339636093451823763564373350018648436458239411713100685151475471666564463076320455796263856851237811621503597101379531501751240767040055946862320822627322791559006194749486026923913824273349340522523730580793859385379833018875206359358233597574750201311043803710042913146253469772476342289767792549468362316156181432187636522184778613404170422746887496770491635716646909517985798856521433852980414775911385779233943049011092023035761135127725926214760810196267234654612444648202559786010335565672434761557570119857010639621186756157877252466065627094419761982355409656213821406084877071579048582757012553743386256027749800251401641836617333319289438216562451282923798060189580895320450728313896598180147841652824023657690240058184890679689418342466830050175477433040539207497706468742288695809669269951883021585359107788476280842860408566437390355910690385587148176215013042542439027922574137013201008074366013189335738460673787643692510321385948109605625781756868506919957777606851322588440697595571940356968002300424151256927057003082085836153457825503211991394745662506405013332374333975912293634218753172705901504805579185622472559351230515740719329038128897000696773522364535231431196592485293261137193152720492394390625828885647120276713091828304137453018464103432903505041720271053479908358845200084110628888337659674692229050488032667669715419466947976845332492358715902864055094654320845321437447551542964531687733449024346635348495235540861334827121640964393502616726607047362731995619565568896572608009602026694039765032710045247303511238041061408540309383956026972449793001850726421712717149160240700903540872698844905611407492248741357827719064253722254745473815798745796590189527923869546777137097335048395608104841203143635280691658598257279542521719792120016832637062032522500408076730759759101226236774211310696742920902188953957833264928416460974076746668740794026750888621655150656624574027467831275283254984728296066681598730978911144271006603015088935465973113306681460171192430368408180765684822909123854944397630277513816677834324576221594941628574401995088389085290484061250391529704842726318951974295661420274694114942297806614159602034356185905818218968791773278049716694090467543645605493019927412084402921850996595501904007978060503652710627602302229463928875446108788132378134749639659710145891858427807609732411363700407573429366544998640890920567763783891137113137703828618362453715524943275496036407005088086434995020377500324365494492824618793818940407675694764005673420040773011152124480638768177257865388906513848934308172741822286652671391499224255373298982386110711271645336036093906768236593655022093136542100609048975160553061930603706604768092235600885541085405467064529957552928687975344549433332765747396272466087310367585583766688946768370137126453183278565440791970749870088526516361425051426287861894193751335611129593669312013498452583053272373055375514561266116532838173330566658911911270114010248899860993399886340676570285359144140136344383280261946188523457830600718853120113521665870104992533018725092510115479167144746041630081964256798017090966235527490538988840369292395393193811781277233624345222799022405064950403543060899147394201797230765398151159997206029593269677242289895181746363940624924098628786356083569621652201625654814754959268563826340994032927429378097282575978310558437265925877186542506420327410509626711362048093728105564124838315966832989087063994672432526458261096405737531910963806707672128271518589222577169667543084129554221849660679444626885434469186012383782110066895342081216202468314758104644273636729625368856145496969004858844223098772385981381630673762906102456872687983705488454656553510841132947458265351879519485481475439291096002851597428930971840583351307840262327589950513469365414840320107078565419611687991286151042453868105086108743475079495469091808749604865973318008766016748142635091409637112473638449335214858751768055708085414025560070172274562467355958705552935228609241784189428166068067484520980989518449390707857824759519315768507224874723357623728737169796252193130331981408395800925860613757121507657540744891512122019100392320727132592750323408662261061996698176743350809173729912850779036206281645522308221111429538438115922996098164936666276769181940228415261215579138183169134209166769159440535837090866861747915469286869524567017708891137131288244142456587302835628772403239380419354076634563139764638196337657340691237831639061180129541029326950007981967516389998849544241629090707803928160290014708143025100181272023066976518271562332235063628289610935182860365159126366602993199463558404758846873434717880937291240708303756722817365191382831886748397617118378660984585504217860548475586401963429268499538739824301560146981798596030559506906137262752766363954672796011089422299908178833042053000231156708611651993155346940360890300312770774065862195890523006255679823305364608505173042042413736210267391776426500891054602010005450932626316871526010017742126790934753459575076283358981641305591994682697332345623853131458178113178354333206858442834464049524311097367135835698851342041761718765839451872668874875636610404118634374836955799743653825920550446060484171334856297355882213843420533580066384121563781009119562417800047754234284442866722535268811155931979170012277366259953944877086392155138030967155047349841174523231838951744396179378100157519632037495527170112900679330047922553607580873429823017580388724039351104360417857158781400561832575081853294917763380786642058066092648395059716888884899249518673541853569321252675799430540701722685627062271189728651109765463382852618534216540915327744216559252967889088862732100663512281638565939828956878723007256606517058431166910020419756906018343828877923210704502279545823831122304365813381155710526253377924906917567320597707628775181674096421331939659857861373445588832739185585341586413955668546797849166243025820017136317811298867465029420716008306984584488461045964986548555465191906402804723527107581881550907771502156949961870805722451148164482876380098501661069967102501097878237312845007087473510202312300934671316729965144273771899467376934723963004843744665829952485081041021342305267157211493193424557079133762766178037084765733774222349081809124988326741667705831768756171354124839632297995950613579111119030698739687223487637537766931711946195940348294704452330504842259457273960139047531858651733978784110134011713074942501134628540049113342558729685883848901892120157964604760280605129053809795457203992973767440023652760085568815278975053952093870477867249397448965489787133026100265588740814355666853277229504109199666711456267642826062880240893724589787723068830206972398350655288787275320135533580585740575224778468332864516389562562701094837482461959394549325724934739840235956542153551167231211791720239592511809828989350627361913858549448266973572133862343048288056210969695927840366684865091684476833334618429680683135879288895342328610615611493256127764107380914418261222282976269260342712426983303452093517356907754759752425645798983061430655283747474609241577397219551214073043812984823643057514736038804029023771528299410638694100986956089531616532937773680767652886112330242683290141399192363254006544020148843741100420000771646939313055022549342052437259986748092662421438352826379089445055130029761517659982580337295965287136416670598886593962747096508925463116667428915086680062455655882000767664177571325894301694936012041251151740187467655333963484942201358257596808721039979861431995502892167170813218607651374536497806769119073595501668661090803943920967098406293749511136396575274690458708905539667040948815038862994012320618543668752492405525921003595852099914532435803848349320254145589554460332792625878956065174074029194057941536300280421652268217519029035004480062412932908874808160249452863506876127133032246559633483058934265830202749797837664834663863334070270303518036701160185735472247745002483497375475737979368289827801326213268122530582733688257187457513426034368451253231011607504155683980340169931122629341620741524074296539584581095401847223444171206165468974617623059692837284925877900946072246227439753475447634158109477599720583263070424234498350499116358198067096966717967695312117589671185337115354369170016297573597327387306197960560567960147308366887253353216903978882387353725365964899201459611683131611792693194744282570443104730281757355371466238778495429564040910066048734661534813070181347291096293797860480416667745702892970166959323618265346355303086608354772186515307762730081204769133177540130852594476181492299769674466668307510797420082380487685541748501497237178927404739805827973867870948490908560464313928395073274073954277373228426236926834480118106086149901678827468550659586780591342585358039637290319275901674104478582250090340816259575620209174615229216440721031126627600874209054595325308223172441842440790600470525964029739247137836904149509666792347588315871591038956492877449000907929184726738872672635749366759547297620780334209117195223732362837721533468778787424678375224102148215150909341682720278510915873260475541846178923265197529687212466421220489336535486221301006183275795800930756598572703783806979314276865717680617612521025633529660149619069533974224821307869136305077834065301982440075397195877712557369971814940689581808391683689198024413361597593376079935992104080955970519958573734548604076961605252548056463927415339219631008000727469498052643093601463004326560076057850027409847476070693849154681539842150529616504440036244231272343923774750376856059125420591091802258909522432013934663806386329632882747023129423476379012735475674405929780408991830762468551062584072035770624323974107234427102520454374542128250270035957181024019669464063579046495016140072818120565569786065722040995488939792476547911260577524504723793026729959410325789862193248835157999643529887660189119049774365965163824959525314219771626326098657323663128008129387601235698571756396183125284182170173104568611284224980964460314990767463655101564206588273161269537232677576032983752809182164245532072729091554688888140488305876638701908220993387113506599378535178440697040955942558238117370979419319723467282028757879157365192742411975161602452840618539347023765300877121490617874972310009543865718661799062547879421852649593040876763176476772002096547292164615255568849180823171062504238379695558334740025540083067474165400194023692066665199735027216745551261739468847163745757236162933106209184748437052544323018072026895286613518572199247624225335563512046548918547909205389194036423346352403078273725883397040030338159377445262171146574348775230430802714621237972716485820074426412080558771191639613960463354571739031724026274009810551247931695239371804091049914579358253284368834296946260769463255856968345954137492897373248461615556696756422905403915203486784486313214244687289815103508275486322652735759700856530358529978554055689973306265648246810960637911349543645544505750572184086207907149208033694578748688549848671814574483000743027273176680707980516394458879870063697189428717967546743850196699341861202923337608764388081297209922347002289580910462303987982844200154058738209589937416079574600066174238603434743430290784692757675993003735553049246799970914886173299445139046487942169525169855819158076632881879029415656867570956322583140290105970733824433281683944611117142405434518305012674823744530306063625333687127245712353170795030555084386207824855530998974209532836088656806170321919263083510225513029224118846649092870934589888672152059908460421781712586141864977320721534829162997278858283378251783202109242269198103640283695820348155310189864234257760217117201634279453712910604137029177154540186941100650618747563584857536697437182721568636679129523034432060313075178785957418579654803247946938716180882242914078392412900981082446012574333898290070749416322387153251174362234182470507323830317286124432190338949965386277105372173019156666234925976338361744200445263724101713792267912928170637110124659320909724163142358544214003074820796888577272677148064166708193228226469119548763193304568108148413676269938028060953777681307830489608698241838492245007042831345653312943272102226543019396397547084343439401127319091259011938392646915125705556228217407861793707861025559745410340316984288171890990627908633254678320588271635432778406036590862242690124971059568768933431361633881969035186609395571991889216412972156238574008207988042616939012206138514537875903093371210303974011038337181479158604118900132837653946580306564215599324870036550496927886543507487206423768541986314739662644077083204414805095878453256458375909162501694768298253823209737189926089067470675409406833671374887316875639800712043950136864427241025233689155658030595952814168987782774420985037979249373866084029227139098097818923952565273373050175634304956163899370571896721987684359669474485699129065479792601446171106148918156772799097233635167303581141504769537971616537889139226200898593946547930659069739951829603294696696939439193783132800407816577027625678710887472991765902072706377214358119650318192719840290713570842361561164966258373142195004580768025211183398689013434394918096621270510244862833788155069944147495925396803191682623327990434632280611006793381048314870253760730188648475485992625284590360515094127618745616146815993066307987658998151334722234723063453637142754986002126837478830247531488067164524018476280606813459312208934360203630513585405369915632507002169765446957036836189880529521062169471536432212894480437342588863964188439297769795775152423295387790362188067087966259598981716168985382858038851098325711383860118849310815428997808623137328697641454839997852204374658686021145334948966924647755805066637374595021067376300230106337921187122206897047637803575154770439592500715092221538537672512593762056597090562904015822815755338242303154309053563478827619841897431755267662269327675621362984535970606518691325302022125639179983735295109700822677595310468510484398826117635462689242475170360022055496388612744867539752642702261976139710510095446862841184810004354873814230849491550209983953612324787504818091143485793716547547274533003169915374242151137783273945733271292351328888633518150966726114938080872679231315641830496068609901247492230667651878668516049569536944544375258466083809263088527723388764476181757316159729042074425508632243904683397440730822354780064194485735959060087091200912486694249275151676657803506815398074690554171645423559949702602573066626416174111324885730424645507990663409168322203014562130629733659961696097873085733159196347272391723038086216657609601619684921420727122717737060720500626035849644140936055201379941643915939912420142463085433699422072710109734511828676358137483587559038844209131142008927045853394928515876992023827726647399097808497886843912660992383379974734390410191580457631250554013320131380688274766202425165692087605960047030216517982658078803075415455003002442061188366883536167634309209840363430183539704573423447917415160584279554030997189513345439446641595211655919247205370217923292017742894063060088293731739861127766282178679077368292397294196714035812746434276015739367149774803399597614780037162947396774279616579815663231589581402689127607952077599778747468979440711261605581901536037777929271336632920803986820219271240505017416906785303647353668177827619044835956651797314219420530913197645675838376528921422618204781969559755646767230845039611563816075404887872548617587648961035722466903764825293394232915402391253807680851047288673441012775860309282540132676415028407310394247011016430310984574880851626788555884855485744301519990563553989710264246013762996900257530058654249407493665436092362651902925229140551559085309058313284817298535340330997782845337779233779074240779834484928459193083089226751492405297947829403471604646330806740374261593532246719338536247190703891020683354360621482792882051370515486881999201571972715939606716605426651424919063250817224030356140268352732176278549557120875751711222050493593424994569116161191364820605089633939268670412754734871358677354421891295853567900661851926743116140620992838112081941782283681429471244340848311458956577336057680055724723947517990295822210754251172488096009245845671763307730961957586889063251872115797308362321127885349534468319225965400818310944426544600604286166349102193839008303845241597772578190603063414518921996393938279288421209804132449476339017894634414834472553794114227318789383667624335080784960723039530105607466176215341412855627808758227384735690789999824296945584817718950256816388454169724891410971246333446705579218776281145173049783731328745257722599124390725042723327345243085538131180273404223874122052388390642194857298970985166054745612400081139827506385164213761848508170452531564419719776285056572774024823500034329495452891577137489524398836000932982283927616712020201169051408562293683387843631828036117651354953492104792398546212736823594761346247373289585519579652161230088823616007193525522668753019981268291083766939271824873991586001760061544401149109774730542528995602251436104684417814200131704738524250742281917612780658594861315418082737910946541478742049547826610952600007097591270115595718203861223899246861728502861332153898678019495461191656436327026800665912484638390813907221572625581911858052652329391863972639462379300463070487837394998815903610420295334262626337924874178265939912515510157787180003712590567563837393873377234892362037196930774065593463120573561421201373839953733736387780762389493381830221387044822065950139440056006976456577449549160199394368248495685846068102132967117838284980483020054680087607868851019378482656240056477832089219984462325155139731515209036474462006880267052635945699314436838379328012773030014880758405335533089398238719294821137500364890572729344876075352064172235597569453643791695515496098808055322771282334509874365771155756374572991055482764787603114079985187123034397227998596951820673598527204158921597240072343709703472906394410762451612954973179710663150019316647875779389444590294656095698270692211806218944328720452161603046247537641319526648554895008163813433222879947303263438620757618332624328072712655377741612069475341749096538885409816315313326505346565141405652375380704373386096697352581015211863004870142836482202849049300200913128478229480335937160901398259289821310986026584152498148248186069872287484445685871634525375293743275082635365294170471229120995371027686509546766208433055657301303281408809682502120467662291771593867074361874336798590633830044883843239605542164051957103959124981807686922022118708571501878152318702092589757614778929278004498576035228454135492140053479428307308661393908776907667560950521520202478430602437571130789464615675257400623310588719653065242568286506127699275013414512442946775478587413650471691815221158550714545867890297430100872473187714468536613262517213069919633742488621003957318994872303078392982297593666720484022025740188062123979556867845935092281759481311234056827033088523155815748992311785375522443431554184749609630667939835541335261080973502689982408311351864329988335016866133703117334138025202942685638931993053885502004062087957644109868156057444842755785075376370005880030450651062856930420051421060395021832172454186011926595237379911041610989419740868554842870291841701822003146613268630434081825968657497219284330205104246538611437964016548435481427342818602913175008700691020730530203505666177117428645498716038152293149014615205702533627888564951385614246696141955541629809199302423712177544261124262195282751111242493489995520878418244398186182905393072811474145557973544172594769229539329792452571336739891235095337427457919352979923962711818123286890150323795738985023892120543721182608220318988124066734519187943883117493067794931837873116538530970343374491132127139870003504862630613603607629003024064942270135660639572138800165311098886970433059163791215959629524659874297315713959596974928264823363604419787239038004542946534516777911576399343227080271172999855335755658159107002409872106635192663337255232893510832862664765834553158642366504050232755193244321603773475907728983400687605369499513446174928479670139140411279764871201936821748262154964042422297175710753659504132565551964429318452380346763295189186475821119965242953860297376494383350204252360761577604916645817384574780585230154772769941341778913868340703014832684047975852255497974182870096342880415321900818725556397184193523822251711799386025375973944063239985001332887349286275590102874462699465945466735705500738596744200340441593091944691221791563624316163523046350608426372844945193542679469856958357304972420049246532504154277221393327919925335108980819959877188392064095628794008447215167780077990419657305477940680094461975585533031674649015900729783296249084986423303508459809744234671147486765610000613669225192121619767045986851799061261016549867256970059161162035454300176727653454356573247702489788251767146505582293397903442948065613127441459463199328885601056077794866358403154346376531801800297045571322991511510842193794969693431360474843564696475430976990696759726138946433390671260345944756719561673971661268577698198895256437428745165728315214522733124284120810395840496464484401594264822915795957251239739685620926643317636220290788697914712978043671184637258918082636843555930123762232768208256667766408581646333426538081652448055416829029014747092989453976929597906409057903392278543312643312047770769834071744832046111632917309443370831208152930620337709251686403141903305921644765045628261064774828050823783835535647839458771402364846717854106601654503100199643490102420125002119770483335000426196069722438907093307100274557413234604235385072335558251221214868052670095178748032577461028614942039592529434296734254270076010275279929508895457426266247990850902503957493889135740040507998664329628711838410336382023630535187453795926564920238315957199606072812564885778390257309229038266728152855780561280216248222497739024210274129667716766435949099033529947698277977312316996595040209801664572644908466118083595359025740541657863649238174686617459952137479329856251730761132820450048801653825009851837997039431294865514608243091268966716070879568457575840463411727463430575089810633914122648722078310521323424859823495042418177088029673955890392467857613513266006546407819797179281489430785378656199952898941505339980942878815657935281855286226690073214883606229495094047150487522156241725790437248085614302476889277628161001346448613518025963613904381799054072984296236935299786046388237620603870846256311467939522696832209427337402609202558907713613633024685670635834736765774927932106594561629202120553216085336522242823354072132104083083411209954343077765319427285445098402441563578103064904490131460629482473069011916665345530812214055425587860260971711221969205984720907718135642572622148634526329801024853209115133035358747784041862966408161130217662209977614055277768291105949341417947799517607360770739438473088367510738011569870186143923900391071039152278572223834519331853404556991691536374386910372523760238098228472591702643250787937937543159804967031672152531966935468586475564680956368615827725939094038770309247260436091994707282684158494356879932570200328021222458335116230979863129256321538314036109080913679728123443092034317023327169188126604706409119195973804720050434378136070804687573735112955002705236364260386517550888663747438585279043797442786594038246256986997649977333427963299649211917935645712443007922252112298644698918878932660097501313224190086229767406537415596341471664385712268312636258070291381848794251916625956678917337662210451000514689102063164539108758518601411562537912625518952499381072788222838288421370844125286334498195236616199601232147921218898752191633309477327523988966774801995182797259850639243086228692010278028672775840331645397794541594591984424031214485834172557501815790299312301868180134335861212290922147803778181356574131652554478830753412553113314418725146896914712636818628880712242689087681087816084185185427342005435387296426400001873448913829982499200798696497490755754576148430369342137028427155233095947592654286105047880411695961599379132259906428741254646812766008503390529511978238374982006829043886274187532222350854032700966102820380013256557432488306529036968900559495799068506478077487961561910303504608611058112090898671744094964275839954116201528313472214725122667831948377924038943828313298262513649105721500852813586353202844362471925372584814040544411960828931473013185782164022872846289149805372396604910632565517214318427443748664931058255078196785777494020479665666984915306973501484886990093835571693411952859319437446718985609460138613851641469158068162576867240834863020478942603343071231577099993572966309761471300216250423178688750358534631347158223437369792854329458402649002632483827010907212187117238695189383596088758581137615767153481352951406902930156194197733501325452565144457201308348900381405622110003489829183367794411109064944120715459644437660773061100620247875759176376748230705685171934938723702910917593113778299255087925388991553211125983370299734996503900264779328055893053915918670838432939559795631671571632022628852860249901943771974068064016974725169394885272979653786868346361242783658829843758902986873090356317997562105860328691301346941713837025145721486651756904423662433547090558808951064496411630882539934135940285976296295973444419934416645449293817314856408256083681664545693304468136929518878335006551925816767255951854127115410189318374265393530245645089576262759311421758167528150419272439514243343067336265791125798468578944396826848732749107719324725936236062701870725722285269930808308553785364765642687364799233333764466264299397325211503289396441505404301309317372570553629189790183292743917382231021136905004979654746167226996888528250461633650384972464960076713818161139457411426031059592438231048530473775086776530433867328825113825163331667428837724070187785685360406459099781356985337762279231448863336818928230221263459368405736908353328036424642113915506880441463808730430447124287694669847422583097645846488071981961126495539647739157932028424693224385651497394011224636147993463932844064956311334080835479404322191440658264513553603589728248638022738304252716102800214581031561618342158433340200663011621943229821459929098545064385969124693031683657799231217024794287227179698758162174083837114985677075745963552350472282997745487424571186003396188174900304383182741907523239125773806206016415839199776343637326955603446011189564578366413028864793621139362861666592033772361311797648820747606345177880177110910066202124015170660916122524795493567083505412446164033626163928227855154680539638290317706901249300323315144456889506884728421214561150556050675399821155719930907002635150655440563258674852404853245638228408441149817084221697694160395172377612410591461584202451919481940818170016787093591190876292971507969426361616853323264102070457668297996833378424532449353404012160999475057948725162030971255296035755485207505317609859868248509654429393146104199721210454745233073608760533873808631151618571085010174940110472022769996809870617129608606013287125876711635065841581218417218406334383057842110381375601556918250520181791761392592145234857196410586406737260569309367724906185791276976896765979603904690107678641747697356974241677808987309133143368941450277278689558113494285239966407764929815542175489283158872043929586246775412885851322085766265189137231178282530514054668333756836698720010271767217184354472962840187697008574307215052783882957393555518039503362647005752593314112851162679510202979946744994274132179086946317176599074448690497990966336654168138678380340900139116087690764180620908633011511347887159092335527501773558719234811929176842031618104988401881991829847538210610667019997050869814250540155826639564629373276460361721675506323634963876462526321275142265631232210192125674110512357777645849117565068506031096676042295038997925648795705134070489309660312141385743575629591073802631098816139854761829523259067794364864566346745878560324099812686737162000204463279990143129624169684195778807849459142214969499016374172119634137789449339195959600234886837804264652104309034929665016225573660821072801592367560772464064509456700647611450538477697588709258049651150172532592745467038150589326212892945765623869182170669487893476847551837344535866776290727218795896689694498334120805032862963624233893052047138201086367014882024425984259504754093399314778309343682143999282563151234895279672672560300341847629095013034145881998167373302845485264704357932313180145277029313851351469802309115636084135718152540815655945700884771055206216316127606193793667711914512258627872694101739449346465509456829085360527391480565239488492637182053050761425992220786583746827451055388064321381072909219855112356499401735433837668962721330038454325939995787164050465897957903933082911445918545928154988489633688732933878915842970745300943242966386402360084302363014912257965028234785214334542492135939890568898135187722794101871569497825419621976511872946118914084703960843680386885435378210243390792478283530533336898679666474487704273178668984560283668429724852651097630803516097065664493530856780086998470622843729912967298335836805286280768722863174829314436355458889864755717696157438477131477376564568298639552006354190145738281996443076149981550673252844948343731118400714052022880686544656368978970483523305083722187498566328755492651777893109014600327909787118532718473819593611614960685308349906741664450395072809167086188777483096178168249821902302573694616401463512564098075413928134641577250617524347748254555503080460038716224328776781722021572973735377859611261128874141962569944889278941893506096136638931627569204025862230165860695443947139340810176835228187856980744917731878664981804648005826101941400086140675104780839405194475536083700286386719206802418889219853022535182262257310976826013355082289190232914211535304467761952617657694075840477877988007689816731156475312739515718905215379130670516367509421357332330377819089031379468705136474809339870687631138345827577713450813714395150183207122528138418730448158527842971114695577260818935149382230175161888585474585327563190930155395442313427859717857181805381502913875348833381523317620573995667218297246568314531367226382335935988796710893937750544063986097069127911102201772771661338511756917114544529560768307050424788454981155088206742987989226549435594276821046310385134381381542892253116186044203891945658524664117252074737369439033160148883965580472694963888099802360120652217850832774727281120082798839516732488318644380940149151531810104859460690896339846554090378935617877642120966488808295715900795342546859585039130961904884840057051751641649408110833455357605847000372667319410791117144120061876220213199294159130228363481123838104772174483516813366846444441240116254890191590430352053690278928539680420606807731413908933950772728492963493774078555138676672680094143240005035058308294078724496606837722702877746648261000379417809163261284519422585559352855895049916253371925274622217566200931137258366513166018503821240577547367263902107237096525076217191655100813242106398220293296126721982540945765631291211912644783760431243890185632212378747519885803945095037093743254088436963120896972283615295282832059684834160406658439076114034679144567984815483498511747782543140378253740577262410696249218689374714783188812242567465165319549823695679694484001406450314435780463174637243089034169783974245462262237371989398832105747068016196879997864548097061806268252869922789715211969832199588605951200551916426665059397114469162603823846731017657461534757359983031631929711266978549003917325563132296838592714274670513464022827759626122786939890960420128669708561889691777999226726400164017084205348471285722446523236310308670269940848038996796832605478137218129633443413981860828429506546181157574806990335672033160426692728795566691802106926376664695564348148692412511848184859719556162755132589768071033912549334566671838837721636056315534006155071783246350811819519475591036738242801275806843390011078250866104509282651160090678161934622496955531593216686634215947942251629574528907373609906962130147833770818814732555016394812078450096660125751209576974448793284093962383235393340424011800365190110445284462546010923521239753864903151799012363912604278838716818686254597364802886419387190881139879213550052536777996180207015136798799123416689417266896009024308166144344153702023667906828023553251323095176002197643487316057558530577624558900805042893442748239559710266817970462587197166863491653320951247412452391589270228583019828380727993655550214620141250193688188525798635267027423762884707560303221323361572459829333437856328217949718161183171551996212151733372170994657666770574308598266182886446244106415371594835743424542755410353362935197445997457323845584237331140216655655719383631450225852377531363061985822867201480746620868500990054204253689654101231422075144183300434476948750772067592232667411196055298160860100481933573344630574457118781179175292977459848776663740188987466117509261106906295440176937451751980052626447768849313900413533631318646501788090921568684343229578972087887818822976162675108120762209917794553991785822950780833301559865887139634550574098839385475962745026301530917657620985181618546789178319071546373912000913996284310801347831809296018722375401048275925504578312790097011001247387555621933526283217741109374900834779796543081129485074558448273938295682162474341314179127968173438338160697323058350555610963508518076977977638247026234694113498920404398452645177678818677092629897178435703981911911549343733474439262905591903036005694487229469938093781966549783973250747244242895252723054558545769647835724484773204036423700394057993949643799846540243019064096018684119680805910029420050742523156741017237536363572238511530549243501998843962494208098954624887588113054170835583138168721273169788430133631850124148659123915038939299901715475621572215174200814484104416489306893204307720113896208635849729670780215313706602681811718713124682571037501696453848297973021805805773911388129970150231643691374611896584276308212081198886227970000645269039006089421633305319240778613566734003515175629727714285645225386204278633704924019516809473664710523475780241374072598822602711796041763388891812977825459912192648288399546486814726807807791044253517591480110334347582278687281894181891744757379518396743582746359202512805936081689229890696158497430274428634999902542428403784370566727143584821106828243824495158193761859625675343254348844538417940335462407415634563926051937374151168204499224291503328845108049351655887996325568604378464457793663875027360931869647358429710536333051734121139040729578157708973491683576332496029458091086583688349551621645789257134010724305336998292215359810116015651229715879998664747730521971876349299475046842380467784551284948203881023803588869491545992537133870112861723857287797944210594942597307136611143260508886958127927960786910897602791185377134997636790718238433058375746768350827129861673804791924340743336308589397173463692281444850319284765734137709691226282766830488830987942075669874842064043648578507265807520889479535151355532017758416013775699568412976535882774249062931569489122354037756972681476562327851414916730517563848491187512385375918709378351728409667238986021302570093071495093095819806113827193846760947153669779721478810714538845398231276928610899983663856666718940489163862879424438418319461772084018337738787713385589001568488453925953707594938169881407289133381997784234470607019392815617730962844538288167368075306875155710355142774660022418658614606192196242100936803887060560367431773210674811887999866089176365297729933980922718902414061732892072557634613760864211546728716023952022290501050782593190827851908389432667615288236782587776237600267782136639394387280819945127530583600680985189149570619366091888432783815314370949307182578539270104061495328406935777194314219394590074195658656589050991875979735639492312400704849392275103263441760441502614991011644783673544335328449210873035899504207350954622726227371747554079919563361929436885643521889801301693459432590761835036769379337577199438072948698502721547508242520931405797509726470531414998667591457568964670238497619791588060397643436824798551870363129273935269353760968570535326338750512623377328710292077301992106058300593628572975022471603045059762209735574413648413170098584671619557938876940829356048695550347350729956325869202278141283518941784019492326004384924381291624871501785115063212827249954167698779413316608634948066048722860930861223459690878835373302938257242138156754471351885172941342461270613627792698579163477481900217676753728861577191136100517498970490426835722340504935885560024277629986408204806861786671594579715465866092391874997905564787987667301327030915569980807471560877513716455081014177060361600983329140337200983117630502618537950791332365588110004777629763737711575147587745086709530870392714350898305064385582407675963264455534027453949170239120819480802824623225868212716271794051429490565056881753909691846807272758571108230504298545129494160458043830199366552279750440967779958055612877483199315711545435624391843115707083366256612912518824245477276665671528080349997000462627172997814130947040970784013084307983743672479486362402881917253342108717182695670815779107506560346917475316430465480644256429827140938777889416766728827475887588952089135923486693909923159583398672087388486526573282815416312324754480180669053650705140245233635090011740355308341274052263374668164583415428354656830812302664573671882206101656236809357238505136953849370457710301872897409197391595433543638338866946801989504644175154012857420801324845261509616169342342008960630752579236965766688221657332064363242625638808662505775335741422180376530513464729466575209982452060044677609749452938981348258420492828720628216487906508223011126038437761446627073943100288137319343195130821588135923940431989409901936134989398157309938107614073629614534958199434355862448902116780932617872237068268570316547721074576438110628138796360503372394433675933249931522289767762154994737264290422206797322799710397952687298366454091189966542911918481810837755420012136917245231324264003356826595269907318977224073922230053848035360371372071616849273325440510581341211260646019083635268446410230236563348318962556656940337700384084516654227705335235935756638395816325468321815677535165600019410424708647757821659835162670547692731019589510077226384296236800367959852743282270248549222051473498997421399616601310274017604704797239684004567983259038635743629666393227403926106444834091965607373177231629513316325947306157599980473096730748065051216020207128003300108177198610099059257497851049331064914378224218171708721305991567668056357513891692941662013751682343511274162800313456618786796136395757854368652105267354525533327542834660465354714078780010789675844637695537263067613571969044610861000861069163056893307553753972230412596456618836347515915033099190068452592497801302249891150197062644800465109111437718937443178183185536936201276260788954462555036973298772834390356879380399356347871494248240609119971035648898180352431303073059041477068907117246777988002977071712154313907645136447978858331126487169634780311565966182924981014010118385105148040744721468971823321779079764515603275443931300742354618576838138405099108043917109745024870425110260043216778722840330349463644370996001655726810751177833812240750727654629048815169794146372397277298553941795729481855778239680430513398330518842192021711857468198345308314828394991723986889092708409903017777013303652592209658042605307924556339244008019942190833536950126357448961675545508474839379123066619150177885768873110887918722826040503554487188409943716633436979456532684136463587591319634198656674560266695769834728790609684461975554325587848965388316010335098827717206742626343079056737865088623765466413904472568174157491831118385438582925693790107327649894859426361635745520707286853613996643418222373095159325703949358163594152192191900184370103181014905456554543012264345952582415438240764353004435938504093077533215525801934349350189366449736819702207727440436074961144117700954080267479219899870264680914642486944986615625036754927023427943375655011176495723496865381311979788714721337008079196744581166838247037835492905505349197719453339659774576072067242261313617789687002300680176133589519964426944901448968559327056106058081519041623738526912153363289820280897375350840901999508553388851008970148417626489685895089532055747620294150476167595790057601721779119935455802592207088268754725188855343738765913829127386573531108323838140677478383995876727541049751519395025757214181807628944780871169775304903369607040727506531673486106366638926778382152355370717487530650780966623675725897022059551190823822486816820322092357686757049896180582962257208633945619087363773487095415516752050668514404477038300928894019103621108903453843507288880542736563222706126693420660619354858799448749514739025333906542119001455782489385315057242223325485078195519231141579501083743085230428405152398384819935842178199828376822998935171468070352470239146561092817919567322822363210974108580797727094931400525086127625746426540399059324073364977060559484009788706980042483858529671649764121893570587932539180424801319957509770379047260203788545464572709792700100504678465245096203830817636507900735070520169200086749947159675959886307577996420399121911265671996441182702967596457802243262592188762365651895945272952177314745529315882084872447541536556379863770312302561181433308359326865629474512587787306302713086427589469542675947416240683156389621428875752074217837252781888886639351857513890126595230491646416631698239715697547122355508444462529534010904268836640827794663783058670391424826425649200714295741456579446706404631573056543892004718432410824319770561257794429889757490058192598946855377484543609091698984784937356934736076379572767633195623610843006520326603012119669397276208568117371749123082111903271153986770976315567788166976932871287768021857492713439792310113916043137840239173718330964296147471898265662367226587104678016430842036239710536332104591678943363408258908660354008023281379063664438290336343240892367168311396100573193512003908446748996658953661277550353129747279528835906923008278665967175631743680430114300077918738489544611601730728421676338823713554024451134738610050374611671204278086489334795186568230657767848040015809577100576710499545135218595407225572798024675929452645721855032170512390369517796800783068226588075246475744636428710584599854074742772515924367898908417517413021587937480183140591203988941287824577884989766067710623261386466047693913825803735173271341009793651664430603382968483685956168467664877009177498040413524020699892598773727933590412394492720898016128291150497311298077344067414461296050459981863096012475044841292698256262470863553793316222221988133364219690643412500713128457648532199056655298309719758656640190447455829033595498977610364476378097311741162154690261249235561013015983973666755507526541309925187265280323904548954087856863701472486353498032411072598098761844040803997461199266483566509568830132830147615864323454964956566412657357040819492749292315138416956362429523710804999860805104957523843123692204999499591524699514817561997392911703677027360374582111478679911067957771755509550022684320647920422084017462674900505316179223045555511079565332225613329244770317440349338295316784220669362809709835922452582273000699370223505393811030378476037092550765164587400869595336544188765789606108777935514944179237722555426301132362019739298498892516519090366520889394845025086131553364423016153647569895362822079450365436650508200310832162622637124639717566656432931235875247820502280640036367973019162138818073217365795761780343046377096374721862482491889745754664107229262660377142085507109057423279091688017644779414474325296328082568134763848318768966124506013348576542172233793419521392526149349732167005614874957691147300095550629956698692129823150226921160166767566831128242712973841504925339671510198260061808747625474370541375898199451459477567653160669346124629305211601713767633253509708286694375548023936599731589351457789966620837694470205793392092003200797175348999226102664384208507187299380724350891075312820310805817571649930937322617459746392694075306644156903916505851188042747878061374959073630893235354935771697832597961906892077751221640973057264868241977335307181171107210974713718134486539253887828313153432360519158025401017237717126427774039020428493023196888556242637441091451398756708783275454584921966000672111795076957175600045185784371042865209788248817010216138723606312126376443412550771973414618059027274549172307389239806154219079843867785458538489204561369893828282069527501438933484984654397888914321769931574225259978319626336552864195093383532285565125136755921681263908998239228218059521774086642116973298096714103219599782168320764076432266291932107510304527403027888370262337697614152336868281607801521504321886745585043369128701552937395365239430631180181539436548418018819429793227996592699715565481658859497291846880244824360898464857129519537490310529353234589239464357252871541846894873227974994023159199832113903374963905845514834267459524939692685600425459790787746229872346384748999441391592560038182906394762390339431406377624373519603443358930172446873824716572592348723372541709151190668922073755795444044251996712932064750300945985658055576443283912591553801420253852907171939884418634274215775445217938374139819861696114422182338514181845367504451011621783284800528505758375572306437803775928751854881879950201650471981508052345807348794887344321516000077215516269815809717822958898262845093779579159413872065133346167197033628336268439603788884462465960996033211080304972922914802299169216362900239814768506913456907263646843854627828781053743504727235474588506727793233076490227059015351361941456162385525312779448474190053530320823083371922717353356091534821826007487878273066656369826023833303076509979694877755644748308037670309778610260920995055495913229054244330478629812629784941205700733594635592570299815600945383930350315923934415786396502762301029827955615208914875372526175906809258733538017791616544774374390955858824490919359654633047295245017060792277476448178024016938345916208792432421240859008314841989000884367742886814938102759518652343903668151029753846729420335776540923164114978362494844565142211271097439705827494827316901776686355902007942102206622722030708041648236124365008512694953676299875595323941961482114281187196597961477309994942846101531584584444130819633701821217830789895867665684869630078029039377705235241880677132744805769247092237102037120942958798564194939805810691507327999385700662751568595134089180591272507513702009618983863422289675227020278365465462655052642276271270788645735307914982774618653699414554051148123585466623129939998323033395429148067937833376698771541380201990216547497820826173369171269602085562899554263269619662524834291001835563258405037466261516660631447993673869929238381712782356130749473177023466033657460204891314061843310528567429167944077820529267296926684477172137469282024303345269135585254933475182406315722779525291440175580700179111763937769601175539946543427634320984576819603979830927475970476267382482370843898142142743738910589605187267551783924579039193770293730476073196481345227253120268948546369994086649750923195200771452645372508328389900772456414720878853417091464978660547436513561240611685899088246453361906519393320668019878029895505250277893234261421069337718419009447503939981374587360527651642866759718332436100412174090045720541855017215245700388145046470156708024158659574360956287150058205535303103784668625842253906040752817209230691244763869741294846107813381754986024929124807766401954661857811790851611108261414424983478237226098698345329030965531085346180297312495048157075419049115506723346653823044452740506540050247109398317699564640283444229034436787866827212019268327342742135073775700809046999643567527475089201832791853159517255619893854579117645175400821667627810388577292494531650167975510575050952670041706348616009102153705575194080539749906345078911283841978004131717582067038471821761134812511703045009379255916244755927270188922749338579210741520760220133647042457383185165236594669067001275818042418600937213704165819105833341928191749103106790701483298753957353198551436641444050486834263638192225376300450260462153096511955659882782011949528016804750118301165559112956192146361963410102214557990793875585091011066542435788623859215433540708933099764301089585400379801071440327420614959953892220416432540617269386706752300915047908865917533822332335786446796666658657833628700399158810579492454392116042747035970688548165349224698819236528097717152866951481725430609871054129196566544725136418290582533905535484515872405685380979148925597241737562738107105725100400829696257346754327589678964548780419539735102211182135621108860785197002585101413529626552800763903966736571866118892940493035392567847678224698507340439050371492168936494281377336599647806394792266214640491862683835580301290867960114975614343373013881767029042860086161753692923221599930346189908207889057304502202947710052330977926734819379194550436483105857619367890489199597323904824251432887513994472999922438868342656439848927330297555910900548700626579788571591225948980047579112359793212370030676706985902760877283349996489378974813447658423478615891552102749344833405186196846814191078178066499861087717026814743268406729275239556058121434647943883311358735824416299112784665352114189754469939896791035788775528201793925327301823404432988811680312045307152998482897204930512809982086585355659710424255553319236358567286139110195584290964550590255625249107881633549105993222547429676664953928280371707531283713465765312244697297550927576057237665945020029017478281227637036813385006282098835583558018801447819146573199247602998126735745241227655411199566480478236565522316246792463430809007702595981476969126984643013222018362421906356078005441135093686990099780728340115138404401104880971382345094093026561588419213439152122511415833921499381620144145642391967514252092799311762339321910672188865051104381035750632238608180693271327495894511396429488111566099766709781363523763224225294291755447089584071684426398485700997697431800668884540382488344425115735274630442222350120277638822025886661063085553476237006525663663278860416212816697260541498844180594154260543002354261797222193691797039736080051926341772074021896133579727863066090067837202676341350666779432408947518150075163939319779958849542447020773842129346183324830091472432988799031153423753471373071588913690269866494422250190957061603698784585289023805353032105422198364282368764936537624103436227307975952343261472471175122971870055752343457637319352844089359965297363510615530079491361900407693927216888776987149123949923482367549057018505413969575690607447561992174031317009160440273866867060618965091629674780031609727545435587891273243069888011443687818483728111123909023579117765523308411469491910142943877348300545812807610038946457710579013968524857992968686446946353286391941607676099305038304140719315708686374993160939088662937656277753617921890603769215691051534585638510586957668985047518540036213181841073099822143350714559917284402488943180704755414668850873330806063830973584175205759847081450112047304838614303645066984534871805101465558585333589571497276831093269762135201614349137115940104827727625228820782505009747680713335306149208616274150455264629982155390012867791062887837135392059251332541348107730356481982054196639020398078529757061965983571909278618294657026371819348385330399281249688912464068551261056388495347032377112278712733444663021109748804245779032331587570100548833967803656118347788662606532147114899296782765024413192403886514510726193209266898170368493655113946051067705722573151222827273794187407580382063681512017807630377078015606503053637143348003346134351752056095300848466915345829019127922286147918947579344307425707537446071722332157691939480564283450883918568287599303679522916131481497637701653164858388151896673716958308063249993350774132646415948894968855265549032221627502908919560327782687669763850902755639044449922792508406764763594423508607808177362732264574938821443338944499799259301820401895903237668509655184697889685766540592302291629885718788519216258169730789084844907225965990968636186286404988486937393100693511625300824308578648129175447016690893920458509648204029640307465371098684658102806900998060855365574984918930834856921518981514281908795837358300813378180795925565246940925725319715826439383793383299837036716981405143974342979040801746673401393315789215835209381213998669586498960795479249509510135613286913918613489245319279564949969714008986497381669285573515761326252378410403100266387188590959178928745860126628051506697669722731214366723555151875936430735438932196318267550784828593679869264422307207529081932523845863750571642741876156052155739745700328343067070932045208535274897427868192299773100290278049335037903663659114645979568765223183303056193058122908584433802908910291029750144778632118727708159967122616827577571838360020556517063103151139578057127473385949325825694658000596850457908000575202325438360258515256548154573689901942355911013333640297308960141245708969491216719235692742666988530407592708744809137406099051666132149394097230861360546925571616444295351459328204444095080997223698765898670496238295625548956149048653379622048837009321567309543296688247883676267627546647330084203890217396758247507593004350600482885033685957581888429844409286792220501525512192148464355377404209364668397567403529732654713981848483233864373560669450828489166311214221057529610555976805886030209926039433887251428586880703427347008590492598256874545721138887982106713679635354697310936467698871279939731072474451341039478736619642185179749579768621322015107959773167185928283053392244442707562209125909711919601747768420456944180981879176881378289666335747969112239119455064203743985055766639032573372974813297355933130255126545732307301958611216018140276714846589656447224637132912579012983844045859883709016439346063866858665920719733559027637886606219392666776555355974487406095188640845120852654795157234912187584578237629480231871987258505932413444677815640496476527192890530269335657644728660526450023552865817783263916347683180656341281895865946241516130134766420303041782170830513930808667232654850368514699293463337275516380081675906643024774293640964475726950464907285066706734964809202762554853549989166399840105674610697212915574734785759115657837765714511689095086898218334056795400575397741374498258142451208186853270034672995863206145194058588657321965864421606800582318334713863713534433242750716643326874287563083187257445020301732304089035893948977687300206112306821184038007619389024368763363558258823352524406865258902258144962261037573380271017489009533525144894851279351546208900375773126582602548311353414327541588305163817799380662067280577600262674310309558730752660639943707936961134868650088612011978097543647977937502827677540422052118859545976888927391500387603252596728220681870849398319360403479540448060572367277703748481743232278276161528556251456413325037199894824219016859419370087627630221451073248965552775485699472093813295357527738160022538016273457038411613817582239147531780180981440626424695302166302749107578265985426747979746998073775365837338715590110055674031707371244243744503362374473953925339227251115908347603258235145618038309004336675248270042773562075836631107346526689455743771929309655597491043522182172514885415774107170819797130177981001021718508105560247477096577684688477993830372264534692575114826502372439212875940818481357817972801993851127038433910179834847442489808709817942380752917148034486703750283656498460423451617573969552205415543270840718911170559730568046999691222995986904122723352658596753056517671586081572670719880923395398696888940740227391414930739803381077281283641561800136225111214542603572068762235657599138129543455039792037252697716930195753736558508170984204934683112753746745880530657255813754855963407685114615720426632811428535577339258175337107068938477729882567301105039620827493280157014214703315623749621727458601699024666239651947168421927486077493060377546067163636163278274943401072307532729395016345485457460759686274804788880006165514621679905579435880635150936820715501411482924196929264040007572295422626799386711112052247349944863164556618940803002012523637014302839456398382474972250924412695090800991598615304138554606764726433243416520523680869908978315560733960363489009218445333127478421469815880512611554947222711940202269750028429614603396820908500722624234033236896830341687566939441069146243508350004152776398878960918304553226935148610800181570670651979525000451000981860216899341477317409952413864241735705907732798223387772828946289994948894541941244898711824657217622901274116039919773976012844927181403643492045615489457319134202982225913598864104129188186995943028783059642559458218738305980968294708818718534179837702380970183107935041281345661391735198548084138670318358244168755660649523855172268373366666095153260408096509918403036999601419941230441919574612934823311409709525194173325416307683294633415908122751600362848461496433601450042280744522023427772452023926816501679120566512465416889234587052016634711458198524847646575054712062929550826765019704469448611272446672632798533958675581444952489523411740128271963760172740988578467702900821565829702384351618735831892453093481244130131875532092704473322086354639423070930833180900645071909566002821795079002947237812615797869646545573092467566735538708144476903280389960090169440169342329462417495178993571091598913913993650062325053867291532510397554064136300791749925786566847715543527963476223600309097580174526879186746748391215985034713587101307288449847927677457686090190509814635540255725007355314307030898518693757595940231238064077504830751841406745332875742737414037543850513077001795544400954600499652877509932350027323984840906937465056327976732887983126730559797437231548584453891545182345512942248135239943717164931178547831514151678568447644909991756070424489403245731942188276851596456096752804610182343694057769400200843258348413524186875218863196580252476438919855988471040581263392017616527095164183105549941007939429346043884823471041039892417646056445694955657129677757987456528749066959846704379160610396483268810284380777570659657294202385612095811238105196904562110007805071944730296843210297740080521227845415918806652758288260659702311691734813450647849313494195046983478525417582857754250114463837869233797130258953972661825224936786680397251373501933009275403261052213504699642750211394736549543314377927384120651832924516250724712140325147411162134740547649998161522444822466795167391095205138914670933522122614283775574309605671989957862008213736778384325590732849064468289277001020783269767778722785362680037908288728783823867947172548041827115957255031352486685593584108723646501018871853588923194079335212519223637300296137999916588516781373934633692971335128478836922815968008707303706525532639271161458052239294282446091329537363113532014029348353281983502031100373818904278933640035269680633148942598526081489035190589045801685923486829812927867596234006261973178596025085103612676042079517237295463390809222862734547200911646037765410142705729334715633640654239086544736195636411055780331576242574948627272493756636707343907194865589879708500847699832258916618613495276909644681899408674351334832735924104863543094044133902584184824513029214599819071743665456840378497877725700552698996598489417271917391692570093649072078770450410269175745865479934945197673757222205061591517062067992568799635845671313401097453382539188141407070929947009356673044187908241881127630303599661924720631969770444840739159948292078679451447331810780150219713107361586908070280052005263524776853685403915298399355181573657430563038112043998959011426537399950474777324114488192893484296318351714299192133258458192610575213793525665721809834363297656278359066151197962740203271280922360776435737019039269736805063120993974000673406462561994704020478005523534741400777358615270043213591455101861877939417088599702199438760808514563071667012730185447738565546789458819280832997572770524959951863669167404524174973070589683102947154964012069700348149855026491744144655880748217191595226930436968718421953152842485543319861286169379644307007730221869184413074473231591620007145037331027606743774644389642420841516387543607335160374390325604717406912097007122276898359935364851336347246672484940892597980320902355177303883857175713245418117478307753429667019425004808837455643029818847192789386716746595005458481487611639755502045881893946315466364717375708227578692246017998169740207189841107311615660742213742628069615310625732174555344066713251004869399589811315032932815972993568630097218386785522412929241805596001197877580428200741249254544502000028058091553931254309370200554428531886699971734281182797634432531983811676979734892675758052337625620791064441980061120426110197638944645358926819880843887937944432170052449424409182202787940314296298788480655267091425573467681690423084725443075479306986396625409723404220234868714200144491987972865911412653370320281001021849177325453609092250808486205037794647711884875283879629528607922547357302683750200813331419303418053389833097194395416285511251015936471363613536658011418686144737567610124008719629504779017233129002087012082876364671133014141801245124221934962168295410074189589675780570861634535808042843918748421633084651730511074115661507662334596889824422285439108530740818434158550940716329442951031571110690369174013625176458548995545503177215757633477551741769163864793336335908241208918326532287234273976631146753786701549054041159100422429680385063204339429916489404733088118950447814632259044615903350417887661721232664634432289156037610479389559822143886316916737657387334061767230249299934258455210704835159472886398864822548786229308220106753611740370475673775741725590779548876279130688988162502656077541301510908770231511280599330398239811904423249818608990564950681341290598784628761507646657430849082534421232821054874312630263937784504950915723176195703755054597940244709840363547064891780649321962359119998102244254534866742910222633047562324001078763394271003843327048317449848430172213611490555031684737849235920588452189256592128506753850017262145008061365900805808054538133991107154867099772081287312521210675288405574480573340171449546383135328406559018025519662126732018062700323278484900716623799319270354225801376420129085257044097436085055772066988741396088932764033343233933429989773136126121556858335474761129522319468461800689530327262419472454512362841503140434833792290540181833168894741128329430164665974902795279881545953878086080282538591540666307093380336521789556265647526672484950194522340724795455866804882381507786288176025798482796956795685507447051800666941260097164347517956678700736864525699659261148926767353850972315645278206694966953740441267569202323802255265954583659402708009230570305815770157107712404538008180786306476595310278800934226780577836825788618761091035970441569488196902778132129343077206646388781365783897256026516463136919655652680716615855801875135567926747393981632440711068023756091923474525673234147210941515166618572141742308497250340179903327573138206052150540029264244761701955418537324550401241995262548325228704117807805810306950083331939078479079730155145210519865160080967860003384550380705276411070437313919969147650104096049152142242185918242396133668492826503343606649334047711597504923595810437540280885616216825981217396376105105449388213692780633464254430433615287179452974943144522778942614675618458372441208047982050047631490585777073720803712839675042180471692005014993671189645849191547965777229905684889943982240791220781647391732964602499258559201395172467611697327476168939359109445564898163933014849569274742336952082193108594831281431385749745572115153347605147185861476889438656615461948650043568127850157954128354713607642185913755122251657569306249105301141920272290524262397714434033868594078459845787332716785109930806711759155205308486912993457182467073186179943436234792938751467890699098538710177618493330729852646873516275266275339453218718127840563733350349577846671436751191173344591767295631114996509519201374732942132470617503531857389282991498584846135828097396536466479557957566235226899586670695514701823555356314490422547863075039205147640072642760722301532677055197887668437662274875983132617428460352860528782758211595697580085682641187950992641736508748966351012122097711707505069159108409287397543861800099883589889715059431054244399613120658303675231241953674937821814110384852732435216939619953197097054316598535881246565637072505786766714456174833766841564598529415237606483520887497752510642802901365078719058224699957778878779209820283994291169287310060514082123730482968095254985788927606315940471460989894867277641372579361230713862144017582805803129254869614234706369910051102254404191739170960876250403604227537619952691807496587030986991272706316771106911179407627327064521101648649014585623161352699081156407207184846351089992059848606283764314242099763244727551910527916046857381953313084416922787228939110549920662725648582385042764625749897982296487653442787439568542117016686119786510007477114059707034501704536622857471150739463841714865390689390151066468186326646417885117399884966916288530184143425558340023626343105920685161721616433965729769485900891934095346456497075938695982114363842620859820044863611117061048756009313916537987204097645813539971351049125630322969696995843922173409831110777986400584406750798156951657506715669452834446738117133739176484122811587539691423949095687384566575897289992186883844043169464957583257377709749235768095434481939196631604221699718308751589439794560163434393866824915786179251281216552188685236954992525075784419513382369689160871720016310532192926482339251763538711368053593291210835724471058723066169482046480811376659097320840294495921902035723907911770112155551686557807652623416513294700595756162413556611601455266541521098575443052788390113568998531154882834747727874078919163708499744128199015019726756714763263411920879443165001408054127179412911523874331778740896293945443098774251649220232897703409571354572159487156265616730346223327737466307928805305089531198157008384017083859097882450771850544722815728371981564896925751594207230759589502951292879534617262029618638245447486024950899149826537881515152901042278018548562309447714292540947522950429447450833520055290288384342879120383270579610620261397690955976551783291819282744193166272166435101193194364697592070487282718847505384774961172247825439344754774795270566514511820851854197604837417712685721051774137197000856791335829105077442729187010461429405646251008036846375628608920556327097083702177365026722124337306865610771697267637109507819936445220674626350632283959805679006319342019900942135903318657226308429488324214120532711173052576093223002332765804521886301179026864239550051295149909624916561658452551681177515618710524191411619077556258550343590747862492773184892610151845271301821829406795945187420037367889589648791380075045476793022982157364549853282439012464564787939194198889649969490694877976506989089999899361810060512325481393723006668056385447665063157968445839158887295106167368239785556384909603370734609623136482204649671671916297888711093500243950895611169485135324464726836313325643353062074243398930463495217786364954068378441002158762752211009065608235570514682753224621187576228218579510561173021171971936141072403218273150861956755221509693326398584820145892694728241231585981373141740858330454650435981130748810768194119664704807049117035350408926128232445917660584034452058182487190254606810441928357875147424590101281234530774294131473834264919750303282990791713408160860862447492197164422150298819972373641051234480455830485925996182513659846395266791504094606781482322478208826278278799694341967192808277874409310367271220056703075843577176949790503522777756234453096002578745864256634526175640376745633628022760167308957425782017751249944111905936727079435621993453240970351561273372611091734503532787183719991285655042567128149220762825930352275076672913161052899355166138765748303937814693931638130320030048914932556239119892835451283089253485704579155290995578930283537239794144921907882421347941913996422984691768316077819535309499227637647373442646636885152261153036636041678145989392201361756088741823978279180706098818587891140434574409945870312365830762445140548667394444651421559820231280094760628859313045811971767915252339776507911932399889454564416103120302734216903462925292382504353257368854320277803619748696154088000714401402673408501526341607866619551018678545005769111876791980220754161352458454027516641753153489938662707083479584126937320095884680071549433221259383237013386437879676218130476819972872759728048746778248269478529916843845069670886704547400131460570045689119984424347358379510767039556570725367564985297796325198115226441310997923985608506257565751375371187720850731432883131200070057617117517232272695221754392662887668889544065350698309137755915772842295376769997650407675285837108405856060176907468855001869420531396943786067320928992620585651132418174314304396527152283819042248373284019974507909502421465227167727991287468472015237196455801679478677476438942112293802138291129359003520797066463639399693502476487626205817940691902477772599836317128047681189767741710236003283236088907006959369073898747936550274539579005440689674104408854712360520106739490396973504787493795098754004323125303756131402544286455595649415119934417203343324055047677327089980517860538157774733125446486810032355688377700399505899340376821871795821220433237253950337525716937161011700512783925972492763900055409427867626547686100331032370127449229982896491466146900922272977835634737692112544717157208368998717138272834708880004478774724533228468827914628062819882056421225552422437827310075880297370751276287921469313098802851982435364207647469508287581370581289307506217511707218504282227282909043042118245281265872236189067346349241349464107809701911065976333644730940852637036145286004780231509897629033971430723010816722759754910054116222704238995251266188259325353466810282421116798267168834302281617155256714149349998574305071343392475838931765627600534212370423024179239399034987127535966688931876871703157116815173649007052107885996303364107360147689353573055055322562767427822191200738311854553585013762446821249895548635222244151743632328872494001415994948339893899772646912930585737334684593743759985885944468296081669904043461882517227295779433197244776375005550666260832224434184814350324657298676766414692310680158100382599116368397427156514877866619412312188778357113913253760015893203199569925164079246960254356351650358529351569896060381706871288235040270220042462598637339028052057263962227656652702658421940424892283315905827836091021257175964294442940864571910625219768490515790952841666086232718905641729815656566272007462033222253146060615314233436237305516433636453126105067886092687051657947828510113457552294851476396893518855184904228588800225157795323644719369032053070485054116476960150019042885095808617819244086391786302042671820808948648868205632555268917848683334040851927089468632372630161887098578188432613934683555164217794097488956102872212811097541347682315344238055999113455952368379005589518864448193412305915875663665178539529988951665418269389030546324592410453352970174766693249036125482213355169653371002643863352913183942658543436275091697504738255289028856553021710313032399174389265805602814193694283908454500438151631811798193549571898866338673821303808411063273906802589020412751815895029287260993039993686653101418220274134468037494849312502299498436972615494562962284920449849527402241807587650672960770637812564657379464672112516017034780534316872557471385467143123230765154702578270865701285822409699649177677341051232277085370229022022048339305760210299123520596908877248420371408550256672901865082022948186138988964433039488893338894774257224452082583430157977840043333715805700543921936995716607140344974367947077016926568347234729848292963183631886304037967758766947623249608353846345040413764726577327325878698840467097866534090425136204458081891363243103295640058400126655999884791368503258994768904947748419299340116901064609485949144402994591757104578928415462816888515602759576984992519108444022021277618277986360184712728461045142957599809345650416716966207467110436487842565578061561289620551739821392962512229654035603765003914588285470634101311655574838736226049126578142527423977659255742027559730915858725720903096531079481439404364704325402499881490182249318143122557235154282455580728717323513665816180801283518471067627017992372083107442512574416101416361842576874959967062789034686575595750501280072953401507358032524308814640384628389162649981913944932578639155703184802062662461149158819585558671134252138229980570902207243413011488166740382019163717508098741164349129822357966478848277671697322559773199543346929741309032465541546120812364441986252214611975618914992676079175755272972362284407353772205020140645601981619344799203911466684097425081205294439604898234923891834023897082001464723438282048253221746887742563164034296759260143652334515660211470137583400630815706413056608804542459011273530132859034258077273883732300918305091002788701569163098794458524166618609799571059421396133146653894500130324993630760629659218840824026265975583905737895503156875500208757898437502135074599646243098848025712854999116020294984523481173518581362393870623606115646520556293665399178979694020636608735254925045687038275475613202906141311111011438966547149895702677108893387000716880480773258660511423471510539378801169849470047521782836482993909576401742975135023152211262042323385698439243569615061626702502227151838673881203576550196653651285663606907373802611447836565030417691621887232497769592266968383885821483785124202483273334076117188330359487948904535562555822416020844267762372947504980795304523520333211321395209673035247488132866687772819376229512437955923021137431069238521420822970271240614686515906419591272048336719133750428250033849225283062325052151386101197003150926008588812711996547279051128534574517203731421304523913913949456623333004626754670275879350810421565275097512059310308959222509806649486726981843059632538504939357773809807880089348176866477382825772690593946081746336051357999891112500645955972659711527159050727410719012775573478833607277260055876787165617648463981335761221659231194395048402161335668717268204974635014073332601960571278910014011150432993420700655726448448733571415402630966034784972235489388079115279472210173475914492235822601560072155304687701780031866650752353917621743316654807664805469262368853962494652113650283398660918527840694536431818424346679232142260660945219372315300183305592188528900524264782797375950562671588458419944157558973179627750873008365065126258917590987027172786951089679633003166563163169666861412280394925193167752344621403024052243609732930099887685081813135395381785020803421852958781848722172357527148236086279300009692385612223297945386136186322488246313265126126014062213881478653830864331315543627960403458152185207249552520695948122747892447731664858668310148884866901764393010202996900628294936200390321343084648610409839375490675864278903964343666363166628439848727218084430212991054528825681705763453729855171272295372563146535674852996889022110803174745482746923380583337425725601577838128537678589567563578637025340872524803287614660602284183550387573067665471661658594112173484980249137993775169928916179994634005865353257969238156940134631899141918454073693053754405661854028315523926817518002245186913633871741490136459902223293570055588466747369765992349562060748477594193472847416717141349393712198318590574173958155285355101288953084553097121805461290888891833529019834387406402381051394087238627939448466124964495308559603815875258494875806811604286806084708672261370753565309935027874684486653216240593379667540079352066985893166380247886617921656598116197162252753074001282444803772490402814544160311125851624612886212884079533070183633840313963211301513377038329136617539099848396541827532535455498634669643135865188185027136855696553340207823347983586526740151853874329115884857937218300065147953164619370723974945857968738585833876779167936198894084091212365073236816912270363288307135624529228659517246045560862977298460444788269675146138743514206597016978590524459270357329097295488313037062514104201295168456862447871695459048461854320857894506099150192883474914909162660824046231212816242012300354634188185690331092473468729325465139283855210674426350789485670094121983930048401744285516054194602508593520151334558068728350690030352095458886371478613608553627415234991904966892683608726219789774197036093604633081866096096055760317612824134246678070808933577848201352519627793107472996994853838073932365062796350687780851088297771714817683680992214488881481705204836489116377689217705418985703536193935343894637201437079034277856571064206855762554789065621937694427616574261540682650925012182099530878671737127418491747594132682548745597746484300203793142663086941244037111623714949983614993694422571118063165815497217989256689133186389211061934410387166567771540297139342645657664045329311423590676235759073297666094000820015693333599594823332906886098323157735199942860102885515015955105870767486426475918740074069658116344333454958384715046535853893161334888440334192737379561541877521064688542801683256656468832592813539725388656848594023613434341730356651776162286589463848584702928673970430245511784131381114926391429519071568591179013615016141086633236165485847283051998037357363881097956203344501574579453452437806300125036937498806261131688469005833514693421614931865216400317006502429363951028538856653108641644000086348818231273438937973476465859559362844053577685746175924131987449330517652480412528650201236346570255724457936636615942364843174907463641302040723987386341156795227978550763032390050193930459654159216030620143946461356422440267257157519417515033227985188005747870568584321814794695069572750618498782374853578810442716510745266275941321307067969444503919236788474506336380724641125992034974726339635385042787712491072738015239753614770459818564356588144055757283305369187951208895311281112102263155569666037697803866198645770973707412612370481330454300643083014121709486706405817698105869044058995929430380131153715530675537886846022286776644235742033443484389325413151055193765021405428995498108266675112619286449322659478195943588663570541990955027285391067102936971810403052916514895889467165501250561316491415313018311009533762969199737103367753260221603931613570131163121304033994125348074603112388918326150995319996307502435126594394653945293530410773729105447556089023003696636793294929785522433893019682869736570084306908112246508456167805418920093716951073190569425622943073252384373179122258117473992123522466311009622411511049241999966248400104770744188422098383037959141655544564605346187826039580834649255186805388044934812934774236911527980020939714450581290806227885051845752048875413052204775337020712723131273025938133459126651746254715600671305053550415555693276524783302343125838234454586833235439994563951632177213457227087851696653815551558520826652991471200968491388102408314813872339208597441712167713911882626203316431041242432555486320471858338586213147643463185137840414138126191296895107662153343084241308721230691881461996214691522407487414769669061879647297443349179752046124767430743708035184528257564975067314470198473507685027029729137492308272335006268464798605819183736769331526782102134652754950224467198166147995969329834392232906468457181689908068866093757085473621909345819566636532079141134736922306783003914266641418253378325037928482765120097560494535073833711558477531713398711037093468007284486840633533500631554051027991091487255517165387438875380158237823593623200155238119178731594265568719269551917767914172667611060388038779452459252696786420624885223263999343425618092944275023062674336934571711458335869743135156786056743626915006639063488568360702623680658411366627853978792379208163490949176719294747053401889436166375170733446087562199361099319885803824439712233004716352693766181076240787474546134041320466885786034058245898889599021778912638608401659170383706292683719705300944065959084874865918923498830187293781099449290882595235226416206828736810265625570129575313807417713384611621266926238997213841843147325489821163373008880135828645258896231185287576037600679329939709551792137990642319978588795928554751806597303462490008175870229300217682816916579140581144378825654181887436054519964247236077921094912459096814073147836039055052966675190737734369726312881320502467548253152844318126520046701354351768175925630616878001736023597948758243701000299766224630364456784687536852703079125532855541859512214243890896559152253969247510425952685386366440689024137017387660594949418247324944116852000320972037161553130470219814120054183838004524533294445851254546689090949099425864530802611842788900056958444932168729427578857802198294542514626304218008264292464129628886887809375558883376104381507775230023436165187951055549469142022427932589337107755000559736644789127397565701642668254725223938810804100125985503744427152646358757399627329003404630280153554937285245413497088524167775998114952083215587338555064559323854659234789897418627869770502684197296104790447475785070476347618023473632576679643592664863842911753543963936846065694668132651296710908603946210362711792352455148804405901520600320007843545933507766638973770777304650004000469246737200399342716696756391263439805017797725745299411104402627558707615788851964860379405551704948583348873583337842434831963741635202450175164295041316757963069278993080989146177854719433396350260250175753040786945229219397351454259922268832320927699741200707706496209370824223605802588631430670095335470347169145630670723484235437754386965837144837834498550183349518657809730424292961757628241550564731527979709256090494362099827753900467921556173889507722863634045235569700553396831743409432803633671442431262685065774436265463934310537153083896027634328655128727064716858843711467423993296917943793373997684225689409211826597397690039260595775755022521432614885939162781145578631635084348821438539622404907420679739028934010141449193403297854290146448591269304165302737453038240766443077176181890619373792093704445760264131303522050955077076933892490896774234226683816004321950487521936977883401346905030883287372159706616334573854785887460170556265994231415569892477114835653206694844377977233792463304160423411642314126606154189159003668047758277224247839831260497751220869769497114989970425358715980290454539928377487017288780549139200537595062872146941626190916041132147297562374839020318641433419457678647492024223029307771092828432530919896632177433788681679784984116959250828812207189219087725176857930515033941930434420587873024838285445890627040236670120038403428222417851531819556744389778300760867430205860206393491442495540659209800938511888048374274238803852733173384645865112763707910924175454581642731417041319045484608461377672952225127885751045222547099680810454987569010033639135700475367830279426451908585328841699963386531430423157649078106830453838114472822418239129020455907950334576739806477105085657012446877986283873345355762333260156081912050601886942469406075896178056523740521835735581778265110393084121462449393735322154450111022436440781339148445261741786230808569948285989260832419694719180291906646555880193095607205789899736190263009047660220238313984045096817259633645280106465991361325767119613540163810053073256696511446684013521708999387132816441343222520737090562893883075198493441093842563200697613228984999105618417227137168179153146060599281727692277958122427888326825170107853537435143276254274697907035961716066615951636943800804080731620468851129116412782132997293201584886864428742558931242365303916075920225346423642802750506749878381774012116160117298597718254974808609592572301910904458699184517610126764922148022224045920755631239434011348314157511919213901337503536290211696276174994326943647484500882990690651597888412508190435810214449218173603907476447943939947200481242433441659826295754039147474072735771340759494363409516179531335773637374259508569144617073046662193278135843119229381254630498687887794626272528044256566833176239835722578454364759172754056949732880959362318408515761613646957663437949246267851332339375517575759953117800210705001159569084413242636226808582603654546247669162299609443181777462705420813809299389300435845370709661057722599598858567828350219156813537223335437625636452292104802848458101911638660960183793140395345912893942195615552036161780588018356481585855318410952618724876525272608517431563851005448393473148937744744858373427874308214336378012994399032731253801824982784086007141226075886026808578666060123551459214625123838843377693497698635475280579494714875361659306555785010457225947630768717275930853906310114634649912771531389637571372491764538492532988553496568220295781559862503985617611764102386929187873252038483707432494736460456537766806846344369032805888539866006165239493649192765036525170347013508350784120217215081454730958476556841575844346733449040244051026923390637256752599106761590277167801592875762178155506601433284174877657306406046618334288243497324738213762741467571126234325648134166509917742364497750535241549056343852032949419003009580632690807410167889714408129875190501895319897301479876872239082974352056105096006209592411302569666526294485424292055721330644081927617484882719165828131539355695224304429738792491440164887433498160155946834810194384558570607519983040416774585459084908618614537733063214558719251786376262466089505173276496542318955982032525611366809593258003776693065719343335165977350102694976788666772629550019969515824185953793979947120656385191381262633509286036554202061380613852595810679577660523552122982698136751786086586482865108632663212279192343089643876526447258100478540094493883438036203573353765889902212500402723862490231149274566370940273442626534672277522402394399519628819820182878724194558406186046990013337525133301155387350268872795324633863048409812159986364803844507391589334890998867983055215408631611045085621658954192501658291962250687639524307310337104567693246501442752636510524932020903377603272466344524493971546390043795028348721433792262788551328259289697905317402134340739818170048982340834777461021810112217436429047420055922978912897922064780797745268902926382942520544645269564583675198918608145626736156968309230718094683884974549373479369545586847202694489379109867014934736684629740368419727842783397218018154940595660401253626838065422438407516318048719668883969339436062302315213311174670867063990707275630216758888281684052086545220397299788378333555914100719086156310779286393977056715144190793846092674174274836384105077710531614496125120318640157502511691319580238482983281062524707415201536006915321181850838187318059856275661297947420473392068438871344902977108898059497983972487150092210645581977624552501648598368712352518283234928520587221634842627951743428233079885328465612700990505761832132211841562963607688026667324246628321901167393017743312500170024176083076411449449048195666281013550047222941643362640639828872044720738793057719239148779230099272347663780823148238804016296862796046559453039389318277647278253009568140159105357923761619789341822219820894702073499435679730837087783878041012627978882368555747876056367253975021936904019036330728120778071495814163250726237375700537135980179773233167560603873641325073414144145269262696346809329713893071647204786075263048423496243325090218659496009727010148093678155784447837675581196255568715644736560295537968024429380266517180982735934427766727745979172879008489551988543728906804136902810150575203746108283950902633991742384249351061607042372599787496860286601960503760453516888027632027708135601499862485099044956660325717170644612330918081133412949287271757597041517456994560443761602612424962046515932447987367316242508730761908571975366822530980546983735705095721300286068135284867577188787140921216815704754469968471415762364727745249661153435927992059013505985324543761835786310857850231448879332531043408938751555546971544203696463985004618171901857954357848536747915319670180518638245669838461883397872387210670090109055258855574565697136137757941145397662294084751004788999912449777954012735635632442046863301615666147574038728068532909842948212530319572971484690155537133985823917545888510849014712855243929299542306109931647586731917872157708549965118237269828434642311050386865394343337778463414631145803674573998867585288440741276247970148744476729013242524196028545356489782381319615532734306025608691246891335399594948883200946846914978986172659397744117766949945575651616677343738034285025328508855953453677356847654404135020779504212154830909684779506105311692179965484533760970135960246777022891358983223718828482230978829011136634885844673217737365293752053465705819203222805290004385823772231265255470670933313241692457583659318380875217190423859250178025575435877828257530090347739887429381119483796131275838924972967655004510703670406988182774280042615817590498073477578195077862124048849924279587687059479890989148320275385215456072712738192242419880780025742537931342946865339633141978051457694263729734936001754386949191053374363337600302774833281030845856480674386727746292550620847461801581568567390238583116995393238670236925060355779920025377716076338705026555165280764879153005261330463349384232876123621296755868272940578169157348676833469731381306619560397558192426207221670804729629982000195487771079635879512793152072481298583175756724046262062518439999942279402919348302457674243606216881950279999656929957950392833961995239339784194535253450143984003014163523031529489102861746403597394040058014276867380285054925125733531905824660195011840406164409620470266922915468536360173161779633978866024013903344949170946999874889037931112506060336252355406075023744053113588299724842782031544237742967038878491473263259496947512466186204192447584071945768587107410019927563475700593272591952770075967939729755615946066306326752957695067129988977345696712055621142951712558602283579993297489257270463120967548146073080216100444322179338291735035760408559971825456102149602725531528080524127054946815959815566715804037514093184196803527970481150086089599027744114260911149404320588128036876916398639642404157812967046451384119058398602133719832119834188894041428782095852403830620669245144543256208101974832886841132722747769218868908784903114216529743050277783272858932620826963261367822376111920484233057134044507979654897925858153354547726263525111628790817218270060280358445392553950940182211558903773526517553252739103110347911362424420848865729134679346072382602022302607893574448932908057102945531965157982817123502781923838638968286635125137403428416633133007233953570948610811886751771963311986260312025845347012235292059008002991339430625489185588721749896740883391318586647407126068385202506799643741843187667884034240453641678691588723572732435421133473638609824744867096299175578125939376516546224151317807798582249699674810901617599865228973710325604742590934311536269227528925720658019640549627952494121365333657503514691749858315336228870009870721734644993845887136814898256022343406332643980105572923864432105546635610843967935304528554431370555660681420053391531313776098343649197598889423293715178554132876897347132245764436689735442153527152294153534613446805056815460744030383932844983060051016050596663951742809602946326387184058436484187010235979509653397165059072612362320301152159242220794426113739560861915247917342740915004292636004892793600534932443586002820941938168797464161021428521842400005517646596797716094814586333261231262346736331758483856371149820865564028058615441018469714899451910165073126525993054933822842728452519168769071944539087390845685449795475907163870716356259261907939710780223745522500707116334330209027002449596689211453979308944633241623566479083035796442042918703322986491728835783557978338665751477694343004599077211151171598049937459266574303343968106201896571425887089276105896228941174361043671925587036548495300667464403618090887777385626998381758634893167987981595009003888197633910874566648745424817774628139562550225523808455978292984256181592517137563151015923255103847443007030281712817755376821555962083966453324718418322500466605756252685756914635759643418632731113380692607372577281831563828510120915456436256293659949936326613631276573994493448243057072223040393373492394492448158621780213956604297601517528753932467485680535204214821240252020072495095347953933695637997631656338633765753350032375873598780410800816799549930064914813659425813904903466652161096493275510084710199455371043752892653383615615290327179574346545354715631849338206230952134034818353119419810619615320425447211383465251229634723362877728512056994754206908931239423825634000278136758485310645698216219951906758910941784440600741393532570902907941305486002713709016233682618207884657333991649617263800445803738659069153842825443533520335532732061549356596622495038385505403393052803283930113328288033857792681017389856633834004580021814159841904572599321374396748444615318813751374597329264299093048522590848594107147675920507488981880480607409893183716802261478576091915007469613332646235117916300694038707103931705960526476943132810026241050537775221959182003829675535939676491144380636267074424977342539904978788110002230630144065759336727573516961194393010948566099413047242008167185431852462339421229272958298594907261247440215470542848490780172124923996306195920591849737881742736037154609216123111638008642367075885248252796843721997682232818798013514952314436007620918504634631597876829779640827550687259960519277140706583478299837000816264210577373599527312634233084276848585222699075117887132464663681911267039781041997621359694591293771650100590610537403507962397390392287948156208471409012835466544632851433546914689621231291039663373098620170373904996664445597005027338477913003180806335431964127720964141063870572571179018800622363404897221642850286587256721021681348243058895002210822691628043364248473987715558396541038073509139640955596347875094612151149579150238279540474717396493822136544193822522085813605178396195981029954915426014579710997035203823306175654469722214558569153450887748146425043084260711831762829253648370971522475751815322517166480427975303481057299745509879961602251715144916027462911740935039185320946957049346335156905066426610449238723819325229654494034394225144672548949458122229681607282145769620680195614274467601810511212222168685975244462921154954178108704769131114840061843818855085412433899583580893894771486158143921572879240784222512961369927817817613175477248134871976492185063454629478957900473993645423755059551262437930814307655944514572012663985573997871701087165882018438149434077775147984986760639652934989196191451580099217276430367740502665427040706778717398065744312274218428405838249948638989367807729212271463872285441578946602177828318758362982306159564455571019701322849851438479217895677489811254238005982955796819588465320786067098529977328277282628561569412300652116850472517978407025283786734010071512989912633763433421036422496375878528634406599462462771171377218907274698665347941075908477931613796490018836128279581298307278430197803850682625784905036727615998972147161143987906331975939956719190374008714829065344368795481887160647844646096399286500169238159199461807097409911358355200576951524155455418372485341671054511219959367267048839865878529215640389646830027057057512774450503036626339503877842124904527400231241896284577749067681806225989367277797237147406330630933909839207463010280230024371521552358474203972973918357361169688701827193263490063333022765867345849552273147348035297399538098490873390862443267406200217299454711897886589440878226321450289679613463880906649417960279779527304983131661632380273059092394946357075767535262660813041493904272822544845072443727466789352068642774284342737467582819451715189095205725127537553505669216645061426617869846478803985564785324476989817708958085445980896387776141361283817292775136007624488552243414747795342816780384137513322566467833878879885788196993425558225963946043534231162243215657591073637534887605880124695364206285391415093029760207638891092784180047152968364955622940982718985834223564965881832348990611186894069398957655972424161562065345895652726830650786499137643221510681063081138972575068937712200177955136719669882558017371369317372068437180810810855693172727448044523915984153872675730115666833419702976879155973215818779897615748385113088516110097513928882553346265978269561048375591682627753743020508293078945961007157676196672485141455432322911588872567005341404647608553502980799109120362367642070587474954377586445875547444956124228328567936413567424592435412930839759686062977439507610471598449658552099242544697467659493305689779123216278853451878139983562967133622844277462332504617579959922870538155397648662488254983992973594920152074821662214642801853791179727732692136382983223273134090936266107307582880429566628748776303503031763597803489648214032067899143718007767092502149878438118293343486147176810567395660766605242487897511728265366715670815295848282897557738768536431298278556645233588614310863685123383983721219453285878909877729892054992539178217178326145284710657316048363046200727230288324703332999696909409132284859525344647240507924826488989573593530018748596091923550693682964291462536975849869509584983328667704353027977302022511420784392874804450266023111692473559505011824489087587204671083429394919110734541263854378570943588892035381485335736887713998736085498159161905139889536706040981948092567935421872833605469444358759541604069461697342798140924079038905447676530724095928374244464277284777817543035435536689486735393820972835099494831812929176862815007198263951287338052317071352752694369641179540783516594205204174853075311761641751325117263876931591172760976063690621652464220431238784762449755319117565337143190340588807579018113864758571630359757989881641827091195226895487853933914567341451519680390368896797592288892100694680396541783820035837440736894898271060170406078962210207169253850607124745676539231708979976168369539268447656027298398418910317238226598117915060735711942267390918056868284613288457865606090189838467373290751306135154100279261255088534963237967274874686344100173882715567018238384857796319789417733884997779456974266111075433611858233464459059753175060556606701744065567235389567544898623828292936809041741939452638504212381566084807224072247442906984727783333652357727426841930716157566633982176532865741907503121643398627090852669596476160505472626109129641487311668417808246395046942881481566079054574134693010895625005968384325318263206438194484383272344377045058072632517873896276841932058912173952997395104641658764982710566866474864892115105345879115880177595961544204536705836880688189559524918952343075469928650981658458924129955979775840266045720000577981389756567041200565805232866067819668338677844598274516753091166313625679334782234357158438349499965412895367338356938597860103573291768272981974672999066275804169346781766471610971521265818144974786276495229450746030989633174272210735560911629780541696874947239047514668710623716733264151532434266357237502102020371144803032950782447654808320193572573087400138653351348284061375305571389391241120188410429253516425030015073800002272468128240916591711823185748558092129272341229200886411120145001622248079572435487297673226793121303563295560660859578516437979598710497715884201770206243610247458162214562080800805355621976213800612081088867203775265969525087173117072030702611905597884736988383973732320157063273133398373105043168452387531896427920053272680396045509610410331664562508749110148199835849575267597856759251844439661150191769514687287730223026710398430626232832092799973372338554794788422743287505617304376825776930064839919529046007640182286167821358036491476036376308762214060147004056087840301254717607055971306874748828596231116756798285860991599713968016451346229421334512500281277531061306891852192610679392066621516437942748527012528027178457715327843117882445023009398894069205044735972315340276611818211730088300452364162712866254005013627663043183353872053138371479724637625065865509744005218067121021135685086597476998091892584543342645435539688070529929635637179121048179104829351369633954250300415688898328628637044470952005588346747327665289609373686214415951503221138232591329253844995608321388653440472576859538896693678886473960044092925951639450194125113466468014811780168423870392126228567125240266153596597979246824440441280889672894464962655375592935696260415685198737392639128412659487078446861215085067757794828570515629639186242584108109863371837190793001958264077683526389307066657687456212419155503654693079145761409613388868426980001108686909642391177653569725869948155901845922412715274070224071977672157695550594561431099472388494666675481801429890912587475676938094426403423479482508949448318961707257810603491260016459980905621318521002254355200193889833254605911112476957127799157009285198581247278124800386802697114842471164595480198238878226970944199563808378797412175727659992706232683200092328449190145541816924614661235940581168260934568973066234938188213506775916940088975513560922355534051364258718750304717696953551376970099361084693155947945523019880018137823863600408918951119498490144960920685414936993961536419382525007548087797864122806411649002297143785697775634420023702222941362251517381710039335689375614157957264340233567347157150419582558307506591714020314689706697934615608915425532680752247759920347750470993486307911726434238109308902596389366379403662450994501885660410017253575279285202522230464819949491256445511152761869457840447929767134969078582767678626578091626906380733994917065008441810074646551521304218657281683263398315497506913745349326166264911336206736284089404153739204779936779418504509899813043543356916811367458507988159065309923758438666155862282111670281105916653313498865387400352481000476266874236350839242926553565796987537101280797290947403321696782513254942315367495778329210003377555951805859323432335460751175673631849485536465896183836011428239159676075011395098931820082899809356540123548924831941750709552914537325468019069688198539471494935215343600910401348332651292849816860124608618109150756061279765901789498269645734976159586475026254554447241107347609914374306589894677954069147378518650578612024354990100843512348641616907025424929126045488370443789446921876377659738519852240404784994860045455013901077162821451072539840129904927728232106640242819881454663777255128857144693762499699283461041183006792849075172585283193852365031751905462822002367616130989275252668533949939438044048942347596273169273515776316691288494796876961413699232745786225373938900396068288252300091033845314938529068348134398508281144109829104350584308608941559864022428661365862727832756306091844547671243712512799107710198294010288225380276373182138647142589703062321219131153782318627341481009168015538504549823422139026862592075480027117885276307320320573859933771938008697278682704501480081362699097499219473861659447017463890439574684877517905377779521354721293085918170666227947259148166449383693137420281661640368051989280537271316147514281464433158717487663355266275991076686456128844573820627892574254273032425452540890756019070133030755825415940384215775900391260079465253229504929579825657681752389381066892722433411618113126647920864928805831294517358824504804462624283080011024982663363105699366033516972107308785647428005188623286476507300833984889521398089792196445904359390690065828533211353768476340611896267504396435979652668968905477288560211616830647876975721635325595768025088992673502024893329050905677015915011215622254345607892879751749246199986294827181027099177608137321886791356135088159481357538761120977719176167634169992936152443319818815068870914725806015850611300194477458865777743746991555287289219046140110030847470186287524580618152251342421853686179246053909006099031664977434627401451280350651044375371196868483481864407485371680575477949964830686001486218456721998126207381137814318767745661757953270902368531825555310489593786707372362140700002316685753998806878212410110557427899512751581502278039106762773882255864092126403467863765320981939077440210823721272808645844218038942418513212104807891441501627483470400038354888541805921256335262585154173526416829907775193614325780680078631951554356032570692359703040207468883335872422858031355642362316763793426656860329704041949729574950875869942100675208807274149388520809476827658261850754991761641096587989713381383709834034468740771186227538801018428397935025871732373451960884309299477854364867956603248667746125850666154107994874576430258693758764310735423525381844993266368797083168431923986788727308378026365995403454399715043047204755175549082670201072038068119674292787759297114217514528219646027580217765522427487198603976007297436954158950367618381471229866341921140292889103887661130307743572266588212180308204645255343589682954804919847359482800595483757881954911641810021764625089488792567575411991137486962830138600633360640823285921048552434383305071460760090511906699480921077499839840151566374238920012143143366340654893529534294450508619533241543085992735512833702800451853106789851214041452684330410185284942597622842412059755297481372691341984794689222000456781085856954901269248349493864551690338881736729080005959068453320737110464476006216877414284031069441141512197969753121987641524473999116413882289516718777787589018720713781183042524016000338410979092643001863037391942256002016657149638271693305416522037338878998799028010935063738919036012029123037228821371109950767029347173223205583468643063465775926628260923673445782411037583582988801844442234861952232504452610266088393819311663356705885700824712305820745563003948194796578925820097287388872772216047606341880432313182827119123952235568766068727919964849102462364092455607382438701752087683251260417679826442907459289197764841222565373491970719952466658790563187908731257709608495024320025507514598616910449792019398595221414171726136537247287668352181109093085505271532940350862766459741910134559632083132697493736490507879452995108930958625909482081824285196426435134596031552293139293064627306260238292504376427558285508655462508643250768225168298760128163602918503273282842142806859225963519932029623916858864662467412591676536736831675485033884312318170346795013379849509020110606945636611355036289093095694921537416300192695740768372510497383775310853807500797694225001021256335688076137484417792551739621966868975052056956849184367023481145817935309906277727561925351767446745244506576303230685610186371983362963291773118724660517817427180888454218075091782237139997232781215884171197920046982560329533257096713232933590905035027474015345144352950411954348265354920091740700467723150073444108006484221557979933493083715156002972567332367206189084313482553943412719730963890868614566305060859414630903483720052073583168112043692885271400361460959260239362854560293602410253594412794342111290200545480627184550657622562329688938901837990595899774109436909960529973113802776155206150381935762411480258005087378117895663322895966672997209232468556928104726411587732103249002269243760565462855773387053908376699311606005536530499092397566205499311471137339139720152733101442362393052349262529230325971226485760230415286223172669339844869141657145263568044985191826983537834974909265124257770649625576621497249778594870785557395976830238012615737237751065424771991872600364316269805820424041619725088928504792198676051745379594114481721011464643707421582021509121920586767489303278915756725466518759437079333368639924901700293398805050063340781624502670507998225698188924823832712040416165393603926223957373552566230202770568580334489986494992893091533522578261347778743952940700074491683394113747843913743568280212842307088487549735376285946695870106535557554891183986607316404244558824794020143284076996469402530513845722947648428617522198475260374910399782173679623787094014931115042056303103322340334222915212818206364652181941412188668012901866709122849058710032031854323407320804604942312578355923564542399936919679705756678309700108353057607940945775467618640448792423369559766983655556223762469578964189906583044509275271478568376155865414415121825596993579786295298553568597567559284053004673233964345139918334819278249112235080745425690295011172629444218237119710713616264980070211139781906527460549578584148554179322354414586974777290584047004501607855857409006463704760726826016012549504938169205737005888679966389905061435171076060332030671468278756573103881360468972248286306871463207149513061231940367330920142180706713825338879598110622190002069545383411879557240522020127837302166122493318322802474853962326482327453521813258108655352653958042017399592268956058078913672952911973340716372998620456471418716878553293245736366707651852922118469951873106263887179805666275792533427081982010046410679930896191780985686452663329514851541470679379125597336229232501102055727919344058009111044299652704075716468699731046702372116498583866837697627667208819709022297552183879187167363444335062756917224415858480548183411551914467821710671816575420024285009313570030308471646357071352239164381117551909875728194812707198840496981925039417963759829556230685824405246718371340177202605515029541196694500222082985247698129665794742194406280047003397445069105939811666495392556343966815343318520855961689292005014845836964783895295952957213956831517992577936200767833957371132855901485234939423682771702220444155021571616823278463644657052497792620974606153819167689039372895827802589495562291848977049009156601753729731828115655345468376677347568642119025186023611428612943864021512565383796996813700664738738712112141424304392031492437502944616439772839304514379404661553196003163561414598614827084053357213471681617241417910739630936711954064561009583580279730798871268130216562755587348297752885887253267259475939646783087466839131891337906735195883211031270849961866330297238413411624161212078803122731308460970768220272362158968530899086851946644678064005921491764178848484415045328652552488502272646933214166865370120233963201069140859449736770362234852491162737329750267337442550861688912165442332585563333137428834780200761096973042344769110625902050438157151136901658698008817212392348103546394638961424861758379981683901748772958141214772020045637340228741976228186622733841331716441853859939443417065038434109966570605953492309959156224514252063958030429715993061049558047807506230534241968990832551744020124116205831303877756238551817832304952337187653250008360253623058553267242344565219339173969032023092275121389222553879583551910558219257515650758639552477448397160304150264417147668758433409992279763783902700576690292589983295430999110060802283892291318917767364904532599147404731937001538192931281845029501599759559199181639897219416577175919601086214559683613895537459278807622122159700209835704201899270345748646723827857863000471873197926050446543224804488708313079870789462327214564684354170013301211338204031960890807140342950772883303596711144472231851289440244325618544871515050409111540835526268851541962079805892498703562521611280184605608174007842951590005756696347755600040496768772178587680926518274379237246955725059587226909202851910740880213276955660843977310641643735444888135795695587415712549649060161269525967721584658744567607427505663230754815831625106776048171415070609738657919893533305980250353824031826096605934334808392289881866321399096130661923390552035969392911929114958352306083279526813271699492322840561794477672094122218878189155886759465591704562313811132269201210622956310290721456489738575610780464165505235065952729572993436655678019163966939845052555371191297482380773381148834737122939451605730205434970230691971138719459574931233367613857930677001557413623751853247201127739341771413204625693359119542885057946615835957812768291946990334701212882991463170898975414321858822227536780980649093917121438606027465827921813276930516271338372100625918469307740275870366332508315111316623832954624965089108407569484483056262993089108343520907150923279671166628653286550057902135619747089778799044915177563553472219062030635890713943899358832457112343813259458173508032724194663629721634034104855520512601655363630275589274510922311506925154381464223628711452601972167451997717411873654815001824519540586805963280008911344071629339070701069342462446605665308837806084834018040906131500224357794043169203003088878965157914200782634773482128839206702487180611545225913772358132216305762637751389733695117904560532653195912955533065561987784346674284956518642568524793259300447018520818078300329768322090817709375449331957211085288776859124720106002608444976483932970079680984841201002147371160253718146689695861881550488570286150669600405871126869577459615140953624618454412627477914788738133105305590766730238568720653299126647470726606493734661039550318312672122797239179320486824099431559564485901241360927274754634828876006981455379683919833196840409666620076510027273928074601966035832888648236557219378605934938044197530538321868083583476988192147265934487764446526596783202363484142134189696421502531652272774771401420801418997496268793231339992271273964360248467556561321232580095623320450878966670050385073010048021059938285672915058813009994694316455379834577311629920066226806696864000449071177188479020586358157631269116943252418211225784607848896823903559245904260203302128442040210316954894466444609174819608577064276571363843263840004556775456040575727844606444383570548687782870905879980587802986875918131561033238370700999405928159367922708563263198770553173068674639349228409964739093755782531943570709193650450704430565268731465862761552128213272676014462512094019827039566879178534978927872229057855846817245924799062549196182525454813768626442685890549731694565880313239193415703830258147433462761174503401603398188418507821955882461835121116279896711921290079467326722452961612808530061379615856727476474690553032294872926258469015637641971115281737133628500963377609801015245576970525293032919124883884228810461994019784069495715719544056664046064400223998525443186872555650389096040333719975740711559313028572412008539103546616815424683073107944417674524402323219747501964469285499636837880941875787518206559248552903707902688758432467663493276150448640254661811560418889440839105280723772836955664088026920595659045740844648586001833160641342608688649511903886101576263941196606222062168213390641229858995645850987616522916501242726953046265120047656921606934179395340653116123949689263256917790542691557040907832071362813032022839712159934197666100514540358476350637243004419608657306483670360307471328817705231577362385810449136512194211369963889782656189162964558438667593698380668807452874057825735198668353009884798513630084754830848809655561623926476781274583325095908822654350209203846822823041591414716248794994498182541772430869822704221048960195656723293089244868535871807265085629872751715332093003637574197006882290037029721060403619281116750888574678861397791542755887002434380149344494325213523163851071977053510172492209431691201871761674496919138048197623072793005190825879065975196881719981932716680304453673699901005525523442198990414611213277679455059241298748901679016923335077134638168998614193274954423588692313530235676634775703773082857398361856347827075564822642616030004759324735210436551209629533420517784579335984883120437781490427863293642234643315200621295098910869885222305186272029647731338440606188285662867801785874503285286698125367198654031515597024987827632594758376816082192148422300902003255158019373085574825924349128938290542902131346337118839871217638380841504952607568079933074124100634095442902381562617434557474111577926073492812895384277098955778410555283895750087738903485888983222960425526287505962424787707086100602828542318523375396082800146356299776368607222015630551062729873463408616944179468867846538463942487955349905916118122010967970157613180341173703816313337756137333565228290092579169787475382919659392032976078232710368101959066135793431852645774745388812859688627643814068106176782144240211298280658613985033128470718842191897108262765652359006304264279188469377438622240951910246796467676415360718640262415007486351819401012814950176867295547390806458532422111622140540393415018705219028944518834675273749012284043792330976515296773614139490118895439937170369574488765670263398339817076025432244440199451044969737998280143390844512716894320410676149008144900468887874748245737052859995642166371121461512135423313555892974603444788821845709955135888441994238664670073742958385043585509403784937226872585248464304968960450786907914973942081663736109686286526444767308967847592450937878441425622175329561648010725875867162553241925693728078265210493652348180882069041738811105808326816449792072935483564429149028255357731350834187750387725922879521557547943100325554457791063418469999616659534265315102899338207690989720943933327812971550324837101056095057097490556713469594832634554125427980869093378278404806421151602021574870194171929754581515046025378884039862978019399906202765379111475299866089748861402817742625502215279488726385579100109068981903282016221443705840222471242338873482888740973928973664460768309324714177717559441906776419546444185175756066698944998004368721493365000271855926754505292566359739645316758187176377511601523712949764840432310031113851211060241003927105974808469204927934032648626050633490007398951578302270832455609098817536763750330550742749283277279742791471336345953070070631625639272813600903443865389528884837554554424878780309175246494459673424705894274546777814524753883020267768764686068135027272347754455498784016448037578243009323295165062797639788344834234142318184481363150657133342432809292909362291457772818546488184220641354066376131931038160089468336236277830889405813536055395218456355661680399132723340592260727736036649816412328417309942803887746439937033434916461422142643364751422636850822760512813690635940725289866487087465666951822426784747067078712427174942884019767181078907844967909868009382540843542008715933296375614640685213062416687912657774646371243340435511676103883068019975089777527047554425930776213897253013751065554470832885424382872254072076056252099607136024544803825789358622795542630017244257036232646935218067887049525757010584216449310604910207782060706586010779304990987807862846527889094806889122899609895863845800495142571706848025168945067031721846441756972050878814507001718153565920480704971547037449318006740051521695017578786642457750842528118997970480537849065479474007640882932841497886102760891669459981891911968109437228723361722045760312089068193099603283845758999474633348925384284639251410732305096584670892292868646060017713886933432525656357664714942123862854924845914099266500602328598060938054928039999552838637250576620102495357861523042526793765862523515843256575962389614045428167331776540630397657061135302152227340592486708757840262011190230709368629953513947397107352606243340678222265332213227118231477132632371725414351026365428423385763966355373758325185309332020610599351736981291942660432664649442949320294413754678473422970096675651033493807776495428426805239039689001295375672022683226544527169779847428380259010614898972747177131387667744021574043968581848950051070930780708835626799416397151698327627189673132871988512215545466051425370665764376361809075281720282093437673487886165040637260624670840998978997567906814283357644568334261046034106523308758683030874915577763957958490448628244053863611236699395056020922841977977265815752469445747196793548654157580883256786000658977265593046800243185189434668048035565837508132325389146847427662630598441696814282602068032038353424060889909695627415588492721060396646644386387978675355900842873016026278600685482713003838237201904731941913710634048009635818865092518219052082910643334311375342851090268325711245669592505150401868972471958116147543057706006046216058818911978425648483685650480624679124213099712351475829118561039988433376784224316659020377007647255523998071400315219483652424757381535018398810892532170242768748297656137687450494664558923205314808456661486741281556769994414991839217493084630655777823285028945104909078460754613369662715013668652925707063320126682391887494055410339947702869142896925231071934175511246188545883531113746421004153881714404359681737374783910479941409171109430761875012066390670740954271364042459504609336831047805428837636043378208976705341162746209035444876790565097013756831282818575853256485289305014698769060105317703414114730937501682250519875391923953072505542111524670404073520077434018495298287787918513926635767872628330284508277965934391111177541900334223527272438886336556549884303840704160358281048415824266146721044184181953370381520117492924069836723548355853755190258814811009262645574710063380480649254875207868288169394920124243630609444970620759974833650117637744726479024345639694367632120278463217063931683854239960304322487480573135379391840261160650909785998900995458441333035592125524619295429493835462966861757095661645464195747358824456184377573076142056791322572754230583119266788922173990852531053311400186909113453892721829376531225705317770755685468294671981522990581575119643494677963692999940999492366794220430616244440827737787886208544926478534251730821378288711453122050139923334716270860319268688654606384783692964890311578411962314286245467306139662327179268459271094432636982522002603844781664333856992069698552479517473266111904354803269989434911686311780294504248091152640490002613931753081377159996187165002527659463592000350790392663194681933480108141438744339510262404108934017734066852521400599213213601194028717759263165891826817056012228968654388286738571042294954203104857636667452678058903988119346378578544953780567346827596424587300355935394482839817900311844816606772195484963722949655021214297856700840850232936231124727493423796590856563674334333309250906025045774132996294474662282271563549575450602169543522674160026903249165066442818431756470497012142328129596642819010832256114542363007870246313547990979455825854062514287768263722127953824833308441644787370494122335237399581370763262071334560243460087022713259057887147497944674995760160311186786956950936006831537048899723210135110572943194351307362939575662060338461980597438748214440542307259097856333380708870999673251967559233863969375210098267174227425524282422041820252787573989926749699704621061310197948965611130428522823077159074826726208983510164060452150922200793738282902373372838994989210565007532198262947743995690137163730219809249149648851169654490596757427813395078858387998809839327114526521926316803120454107197551771898614760510671103934134849323344978189801717354836643651365316615442345279452621779762448663960215025376572554896613564195066096871781387539624989734715250934312629954422841668912253387307101547748118992563975181415964297188314114126304012046327193617818304259325563221091938432569211031701288159296686422666621062559298144223877339841739806775571902847885725792680344743853721090581836347292619775154029353124719966499689566602879347459146260030428495495182246598374418517947620163883365402712027164673220156229125199608030488476063860821239280303279585922790065390424256669954396569445926162574294876735706953139725260117953773776250146897592102398603383405654759759205797039765335098551304364473879046943991990632485309229944416852765565663592036521173196243744092872622499056557009221852363135648002670347830869572691953718498103298052467969904375796367609612424160614998194052222917221967970199097757783836566352935560693350930203936204369560199645400673261825145741684110378402653474023979774106448310783988411228044482858604211397753693377757222399529750640628909296490475609810438546207792365362206759566755313718462330782388040650618850642892450743830564334213049736442480914136650779551842862004151932841874390535786498248005387009260772304951187229374459394306755634537464856344446544077665342285439265858755926014293498878211914751993461204821754294494216860087237973995175880239643186048687872652332203290172288253521611001824668742519497715501880211440001214703767047323565877767656729691656500076073566516725776914735079941725288953158375138923176909223168360506972346128894965224925134430261949989603161076048385346509303003398861812038890341175973056335107476191632164951787395913151334188839493113274103895167599140372943070697645981962442092944175204530041298788906607064539815170017669010840617290947405504432452173275070484324679261885742953035905281077865618033585948920385754976168236631358110821216920682627731980955721309566517366833996002228290147791085378978141065262118204769642310729881169287790442183547263584358581203012983578964209548948849852896988958863990427149167798426282572916806517836149264598102626355254786339880077357406032940371053493738118085770616000632967132841983266220674270749124885135301400220521588045425226076565769610630875895727424042019248149211401984728513599327400329134606880970026623660066127288720814220891228320397202334638074223899773573754265248498354351107971131172595984081022730718052268343365331704164458281316692199952219398449783262843816526417464991849389731958588741612095207435008658686331370555859267908871927787189267439292797601041851282875990087415470149829320170453286251105104426705242536750933330470903609714767986155230874685627442877490214293002616751282530898274799120998255314526927853418855471818138656213732417617452657194217393311730272744088904409050701964046219421389717547421841298561691765856059121286294666653521656879470928989795700776956488107255868830013261165162699762792249295421915661533084280032279290321111270039701893989984493515998053326386019381161057723274361591212674715747466661684979294470213351206020345949381690698586906553175594464871734168688188531399660307281696121882075906202605829451383222555595337321591618052643118338522487292688409549013415535961628942235326106267611955531821822558257437548482024350269135074432337063725783467615045782848232439969708618852861318607407872626594699243948119281503094962402579408549144380726538183939300672133608391875035693610413945636412496301205107609817945299457107636773361386827330737679265004135932941326468132183493846577533463354999171376878613755564355870296736255194199322279663518880764078633382474306127756401540289250644856205623070580283750940461172715825162919158344747360652477324398313241870701294771370352707300357174569488397332555594633112714383875739121125381753369836539295240446472523768815717887539266666324800981498958093723392529686380733189426698294515291415795983222600699081364300580140765583951731220741938210340850215225857892653832607901736403612150993596716488238954615211422760386853087884279197926818663885635490989568155967872390309223531848128127276128707414441136962893463854765029658470424137625760871351373559130410298905209341547590889066809446956670099366490077898415245029292852512676625337450761414643480413605907742815823894759375896106466146969212658014172504778562358517831382020760052439362796622506787280799537422360355703662418261781892266341549395645080825510051987847954647418635547100595687692196887587510863367126896694681969515551527051901432433922264927783324403687797491619658037872117486771233590053072578447577855700279386186908094278280171510881302928886248917605753302776146740610615921751387356949473353652432903072845207847614574044641719510073992612898339315279933793738008252967658538814654124324198645985967511824084510444792187465777038107590875800195114193291521011720874464436195438806725742633685032172123050297408457924186301877057332518902725046681653207415602607715230596590104484275466555765203995901861196183855670286699740830709042920509990143502057200966974048568188094689181098067774011379011805441380920725781265088683854833773846005191267209279489732122647310891199495131258603096381106036787917573648888789643958945112362503063891631427818113233242015644978603019249562117519786850701164218409727170314917743332092368726880097051769557707343241879111863352880152737341633567893361875452714973609663562522720290321103397222275589546226192705671597187849140890486144507171065400438021784386151662182268700409751596483069929958888644764209928827567532401047600041496786291281393716586057454106605746620342559907457880846046603945885748752885582550881300770033043566651540188496253761689632107821631276044551122496362562939295042379348023423217665331737451756011162723147177733838151495592147783909071004391086468194579510590356810578924157075916108106078828864452692728355782567618429500493305202564700009045971772464536399695590431800818334876669576451044044278826409195335443311464928323759692920558509166988592672049026361575737806167369550039700661382781152964107095197944058480786779369252875201063835961180292648761371700416770339978685693693206246440351027754681175685447421637159440408042478593914190011383149048545905586102308338634633530784566213452026709724620660175212966262900836280057044823170542888045104207665260721894562059150071612799734050778768782606751670172769900049593140862404364846258242785590225766378734765481212887104971104308705274850368205719581645586130380817509986276111977118343680670490598033623252635528514594436186955892740774518054708257922119314824307738025442693615105901041108222775959605739260070032139455970433533723177207106117438152596728991303170390634703611890395719731497730973446830917173988082923998712480388647894163394458506136360473997909772985884318517140586518021380752275699289994592430289585748813738133658483806183994073456190150154968690697728313857751222034527277143649541721841396232644745439342918891709571433780773729212633838802995905215267314335894019753980186813446359899594465885903943149850918574391099435966293572062569570508542454136752233598500600499261316785930084736382444626975785043877316074898476832425758793729564352527522234582384670516605423730569727844925381791411517828047073017088779479859862528767681700088453543029533880803926795002692467282078195033503176873099208152085378812238585304356472195401319802038866035295036358218615966808503107451543613405062653037585901155379090719435417669485057227226537828167233075139562644947609907335761209376415135177752863401376615588391196147802584614472413984951876708778110946247621576798742257579417224054780476844418435017517016884865555567676117456743364816182059163546144529225420752914381348153966900829985027880104603933791857328054977226235871999393616404174809229941056815244964065725463427530979765066690678760734592776879125028411059437170768482489367956209545177055638257032436935955009472331956931947339996460114175376575059206632021826280044902499796362975863666404213937917661320162422362742658615136158650527857190044893680385135041225377548591691987310544600263559640638801950984388902314786218751924704669909646221844156383799410545487095323356349147169130043516701489306796851088200423984599034387653666100804362969993233951565218580288650110743060526605814405236458559518920728415004474630510116921872672688743778945846173709725780642420512831859217250560101259853082645682522219716795636553176780707367887898400473398809899627074727670166178770001473143059865785997288571346800337465682411011936502112729701051090456594917159244831375629363832924089629589243801341083834403476539286836010384215329186987110971279130067316817320150661603625512731207234595700813410012055194601597535041249891460146137930392533615984631709070332752195320274890722535295592507115960310298614508717362459080343546706981641492393775177535962340618755095222686543548054343123310425269061584733198579296573380962246526869017350755543462300713968719228705540423473459669667485627929318127350465165738094474468030551075264244219817557975582665347232315085000143378325803137624043281186848144107710012997189609722575653627869238452572411464505898790227588802493625203897572468700139887372195850834614353620017420902757220525113385113432914130577961011885820911281131349855835245372384401652288303063552582340117062314451688000843074409689112261422361324589325986123827413763971552280389982508976009475393876772397997802106788211180987521561647777111025740169889118584906374377625360752205494369888746910600156068774125784063205111213141803281911162801751916804202095855882986345634835536493374682654407752734516109527848919713452637692138813446665238899785855564101640998149734968539433167441821028618986509678106594845141457727709063248547515326160024353122910327748292154696901000237789431885322329378371953738757701792408281875416892993576306069040393036846265400121949237161358560988847547766740841477920770972303523348004101161310664402843126510820847936531529567053792823029903963501577376753052308040626707012936053400343415406954444005102897195464070821491141779308677541813289471830413479393577615459472157507044059216249394038042109648726555201086136030832553465840718240153608704993042435914468322682180072269139918658471801342745462606583454395597611472287192489030408119164774591003034679410462480918173140281375346372132308320116127596220333487231049106765458007358905568826586160298730053592346113247947927854330528127509513987829831101027133550888573450841901381009720868494190717179530300529383136389123410607990310654727483522954796863406290222334050806543895613957137017654732624524830889471904207046837848144291076339044803268372103026948814526625089563756305178338504695213499649434096484679965493861095562162011822226774831423260522726553983766616173322778898163170265608924940721054710488415986885022356853785451404535457113383766796984633182150084573151457366381067683880558835907401084994469846779774182230962504734869573702934908992821052971946811863726783177572979957873181696256358687869996427845616850433719546255710209444359501002436825502033942778465844068147929936271716329358923905405755972110788882044350813082665322004192547161637915690144362182220958724325965543443422955972166448992815606619460551848947564964706124525933174278055967500689369834857500990889440489765726857911131574008146989435750342953146327186512706973930993928030569696730995104919791452851280340177195133299032217389719653316940639983477402044088833528228288860922069597958468717208164225875396032440049198222286787138917814396771341587926497152503085399684145964786554731855079212364897260616050513429233585874451802057761334045734535550650970767398597156214860937651089256930184030225408915437535273183951239266403234233684829880764605526478277107080426783937953681085896555266677364133260095454907652905957358090641396505297106088589160195989706241247937837862461119254515911383428555408701931089287720341472505800509290183475931140494585146709759349806751991227455265975712870910507992418407677753667829673847796791402421370567403931737681818429161934512872989138522693178401976524538668994154563958141963026942679136081358265548973984026971281618614815368077724057621198754382335668967061894985598276548099949851106465957569296484388524566065010887852658458227241628347945021722121313775254255753268873651156344975484582643814183220950336543819404927285971748530457526008671359862260344651916087046887779996203996987954178795055612893223737695004518896163195416601693353211075298965396458920784040620623005843106162371224560125678803985026383053724273619235480753341451069727288377527326653560115018058606617465730726934748171300440114323096186197042551423339594619205632976490873694234751304821118565681461067918795198980479008676570865969761715933286135209258588003017901850214191734204174690144464329100947282463486053440997262414950609152634658531106529307372736720961043447987301621942845737869937350608878903216983340173445413236782342118976961641686730500892176965003265537137514099602923009600177493031743998864650516248895398550698597271987727607713257970107972681137174297219414674905326224599291561633794352477877223729879973148425165592839166951795478418890947019894234024841729335156178638629391700533722299397225754929217106351414940646448752837769767197783793380587171774787060795067772128803682588250496963997227244958881920957401467748063649913447908396537476337252046360786198438767745460937741201269001203525922092623314253125922763480957680579981679509054983658954311352075673808078447610820364683769896853720272204134145100507971270548120275689566216851940813892090920149570898453725910975420526922887143617042878319423327365412568833952644630642749395434365057018204231120575520589769812962934406094281426999170688080088451659010592791672803597473849972455437961684372490525278856428307608404869964611656554099477877777563156142778361729378395694741121375756450007191222088127410295011241356204743506541439492933828681988742876697617548153974426985619078759881990516426125810531129701269232334661489618525439932514765369640840084900690407896817798909875476683102120229609176420084692028229829540378034545835140382629076021837638005772887333861783212700455427496203042041469338047590325761863856245285479486276305060743381120056371846863068255790040744007920259672125121833199189146732898180045654098479964164682478268490658227517737818226808576249059891376378469815159346093445658209072565389178954693151215097046271196472305410129533493232586509747354185424486087531666679302061297611849371037709715129764212962414464664338678688112797537097469257780650103249231402890912171642279254780795969622993560061083122966239702220878214017313679015049697181813991168095326151152369184152099904941873110957991404832870105708233020781819276661343287378752276136198568394236059260403644379869572345706213115638464351113561271384225134186916381586236810935024731611254847240162510207282214819349390815042432434008669293078021334635732580611618506584187019883848424868581814949789848508063404217971334888159636239529664683478520528045947163036833119468863886289812018483150538705651533770494251601172625471285128190817231533764556971832439018294725634153165631654909183789545119903590241115495792431056871913379977171346786298771090352522159050481172033331348146235752235823929666458808366427882189596342754227211342560464409966694913227354391165310395865684328107502723187060376368399234423237024329927132321106626002059935700762031199150352498016847608246120578653677540858758018483357743616044070680353794410600642749503429162318334232497346860106171601304299014806803513066657260185091016253196582325145310960008653140353367402533911563059355001170491832936860514280665200502420884898374052332383176410392919736892825479130391831834712573485700980368494507349843832917334054417187426902075286818241526868118580016122684253090665466747385610629931133691090617180515070837822413055070499222340136978890992791360950881157042116460426277943824317893438177954865603495972402328035934728286518604827532417947036823143019657308194437838079897948531161117786865657824098746076158883283100550911853133873666826251799750433100919574210162158887597089703840215462130420379360207369875247841549591353435944523992196784151067471724072324063754154911321649859811561442079016254250483464522661163205352148130360021499821878247058741886578883476133754830719010554332599740966755738364777120258166260780091411227487312288232080206541430092462469291198744586449949403031154194271945396202062818975900555868833301336624924327313542758280572970811685974509344237347263880504372761191798046110304081249385112750397365014790380243474250982215291903633073596765881947178568582637777799188250900114310089905565588007305369854868780270604255785718302817729070673198049893525024858943985215724049987747832789825397596763562885250082348942891818042668027175682980008052792017793151041029247434309797381873664671299624135111466349611764081389574219679711553874022541108132979556951294301511972811349237446712086291653047107387414288261035914049636447343797553079217503353991818358185571801393412199207895462925355130887733684174372630216809646333593405769927526439244810166800187309835442566679899755993971237599920203583714429374547152318637597651778033239119945490437682040499773948078495836180372010832381774017297830534861367440227078499377238650136090086127649108716192642738385609202920964896120310768021350140336764117870001176807893044996493426248275571669801645800984611046393926636112969214313278967003017588017117916721359898975063485748316317367421809140081832640591414730394022749530070373768560174821873354074002126203676046765998341966811350711732286547768065158128231765201849834951886825407429464161389537484194849288232632559723880967714448806864689467895900237622177691421257594282579631375579009767632486823895256424767163764509722864222286411531340757353768732127958930514911314727405934697591032216922673013224170557042047736507353807705934820294356079059243676300529755173879130557896191591790859003555729576097533664302877077077997183505943257580000407889059764156913705843456934048560236618652046032245405759910476488994732936157855524078837067280718640635236703293394656351271751361258506109851605646555268544843966590749844245761851716935704036939888414986466833443628939846229290181469092148763502638720305347345559900016569157590342640018175031096648470962840854326235468799019604391158962374171275123875097333094542523620549360071493652637697578336442196318139982894822402142483776585614918108882862513066051951843834404715636539505266210450674236486161644097722919432115014752158043292898310770419291343111514412553071962005848824124724312062329685315520880926758325958740195826414252104156117577920796680790819308353485121119654778842921052615841282980613150842976705572013710845689402919467282905037947966284779901470199185148326758295768801335564100519994088604339743365329108805736471241203360158645868756845844107469746253399635959292131673586648319935744920013263365273175522456985847883648295443185474803594598828525005754214199714203799344702418987212644670773181923708109066470536133182779308790669907187515050040554423955567317389756954748439406141142385693143524742990745899365354035894459552221674185491814319780062941662273648923942105287693476232388022688831251376574183831796129020385605950953241753496037070263211446039447668210101603759589834336478417602979210997932992380906416490789216820246576984697642393780839042097593558508159575945512095184323479798310830237516871226343051872073450537890429405542247806459547769108340392649773428766587521966775078746275432061879049547604776106347416956808781576721723401170960279972135513036736039139635289465262190252661470070840884214606008795251803993931155887684503773953036025047080895719572114279719017067017164793516266775772319129296768246215763968776151606980104465519755523965821687462762956913993975917247851232262448803300914845125195779161125957967373091248993591561752079322909794133757827369691755526863108919536024761761188169046342221215206857538009468745446758174987127384082928231451168506249951349898259613607871838543344774452412412053348986985008522410939640406684342684209959742632700705133711427059159213795037941378499362834604234897233464228791982404523196360202239573448794113272237026919549016110198664045545072888374881585493120658808917841480108871433796259453057533604838453146758515212348801502305939400077909888729265571800687056665031165991909218859746498099208524095582939256711094616763458718737562879128148859452712384264989141033723645279418930995296184894653118940014931386670068518755827174903215340546726542070401002921094312103396612205235072852247182917960187409787108708887662964439205021405040548127530384532150916853376959053099667077788569095442463738604229780094881640575261800335004343088093676316422382299378715112020007682928236151875182853023580262247621906533876969011886469986731915555661945722740525482998052656775123937334221402875312189299837471574681615286765078742945102546341524522474271129664641782964083079636258227832845246675400460212327006466186377626158842258880415204552760197739750035459359791729050800754460823821040067863408414002027041367245859045132956663361669731085778384063165306108784680133868703492567195345081061318359008341052669385857041030137852268802568518835651436192860294885672009395282784923429438566697048929151358649785558918288080927112222957197998606885241943632876796974509134446265459462161660308563272624839883451982027792396584695637328687209493714684598105835350393886943940374350777062721113441364804766317457637828306722253081343304000885449533626750899555354669266367466504651438475558165553067013196988631840979763490582643459361783372389234932878688190587355838218357025321676537165553602219697924311037618719422960657594843868140421677161743292071470164334043837594258282948318224001034464676686458185121737663859963470484538134036598161675936487527906988801494284771435276302387513297882975315655999550307863535007655010210990755767758038205357475294420264786422566505280160922524271309615608436892590161696232867193598381581959879541860920686201947957247631857954777173152837804525978058228195866362391762510528114739683734997976311672975610653520500024690941162486469400744517605646301182718688636147758830384574113433204728279514668596889533949756645896620182571337624934736887930851854909404560127384432511432976546402250363930235480680140313262634639521834047802422314174358657452179850380330249561196685194792433308353714547310498803699192147832214019637452587376677887544262046535003904840854288914130090872415442534077018921335520770655460094180043826903115779543704617525520097027882276693813022377989418052204251638839852471233234723095979728866877379194386038047857340756048867033618276929013901000616128478221383719140393074071154088561663528615268088987891393807591291411605641860389763207824673717530814973014642998426896046762376059204283436543940975925224107658021830075444653394640220466310490577225000302508883094239153570481179398245568558336438923424169479663729076757301907462765458274788517203163066197925721454088565709099989033388060237261672374462158478267029790684858989372456879420041758765449778930452184629437152251775666562047683220761214085450114683829609100579047051746000971215542352060114945451272601052107558099323303424190049385162104072138722892280000331609310289150901145870178237738780370108330062222480564503874872408889118773654499915322227366579014451447050354009222579214056594433184129561103828790321050427046312903753231168785939364335499200874398230913646540305491920819445230493215986446384272682713978190382456861659070206984911370403174523310508276961170842858130189949131210028556932317832793969294860995598785972741635689459504308646015025360391658609224522690789698086633242002022684958144688697817625668308637065400565996213244204396519022140894343757036747034919055711851962611252060453736554037143917496667562910056565278282415123397586427887239562795429218079022438113511527196699978162307368715494338721297899089017622913719771435166463208770530419887844889347780563083672397978335117211919158141349601970968594512863236566197065841575835433923160505755163953178739011367175732217241650251990049612766117412334616969474550750098776446072506894403479523895320449519506140470762580983151959111094606459613086422189659816757059250289088827317247397896047765807475640176293654657284476470977718065976925548879700787522234405468673577917194841991909117179331466188506117407873775777646087359905434093100177691677724520783051526662509626081460136656133437893890701990598392533854792536474713271290072088788455722598887906269104000155693532590598767661815082580874320510155190572948594729568639400219769587992401925506688756551359894246752447225893039657356303738651852190521658854386524191724031916862908795277023648124860725406550914571415069960465171822143128502410180169214364929381791538488391943837904358308394804311657381591860729190015341059651079529836511074089598795111021194276661407543676829034083319011903065185880472067291835561091409383845997102986341289776195144755494289301991134430893514210248136968670357708931917597762260006242566535715333226951534700243134030826575805632502057359304225332234859811395940263153813190951507865240616746933782629954903526169536765386188878563381617665562567479489530868585097080455416844559525464287837542151825660707414145954553055023055307291885267180782513779190736044579338458201363203028120517118575786098060103475943576829144955277994793001004021842893559279631179407081698805418562688084832783689118209725039106747059307276652048913249715682463227657665627228110759664484729636299944282532234926648132974526789392325028844563294762903984287144815164650798042959641660968069766088569176992203893448327118178392150870412765743513567814330155811125975511329116908562036707434495562814465269478798432718104660111859622353463488052082636487330951572677562732441523822767003293785048199900967325242818450986844148680789614920029101068015516610147835623681128507546498993906720726759848781617697655724312606694916032933151946083101600748394577048097736727806586291599057867745335511381453155591020546898567895331993995019220629174492449248066334864774135378837295223590019514248088948452034669707393781978004077307008368659707595609203703154562213226553433558508859126204597030455083509918241115185261020905481484346956231388164212816216041815119681791786424386770374741198637340556991053800538231554808517152584519402443165438965215452612551451503433926015342414751788977234035396454788644659455717702066496352677663563104643663627110975682918570726958202011480186922658769815432185782750704819639467111836874183734787048462628008271760353945142133723903778420365921228663529240084762838120016073439561045527578182139502518940250632748629370081871892987365796791108907058593640973941192459311817053961555747559279366086955146606682023725312600294263611141822048674253698623168007614718976894995580632955444781813765289545175507521016237562457614079141596291088609486991448681654816789120016861271048707640166116380027563071914534075469177823260506378847429539017623198817702451226959857439712177618184433326222846488825416471831170083465487063688148273596388644693250169292076571698566653199057044947114194877165959665508530796194173578723567857803134811021937069352358361945752545241191239749327477517943041647304888841406248933582661632615505472474971115312560078656605785216649041181928419722498203021857384729008917139897469559673416333623999414920643188669956499198494628765027161990167695041320691251475319395587959708350930865951635257010196479926287711687263070329242341683436116196681976291246485789571676431798714240053538760435007641429640408789101004625250759030283642128275141947832540971910151301065590573398454899528246633178316348260647338229383030026027854133377260826423543484917835595651938701116055881812899984406499260912909136227679419443241042226301174887093608518703347411715132074540935036174603803604150520374676621798814333783678464250876818917887060425224772129491412418230111349004462997582015916339624977463012759809180966388943780271225271669090890167380232171816435530699485919243992897260009322276176555826844497140989943962526473784116172686222753537561899113744395350237137173205893575046206774669489567241280240789248600950351650235553011676993439320491903110797819869047091185698169108649449972380236801740731179564184679027927760123546506985597825074219585858888201163815779186839893213045096314373803427435735013878359584085026586642355921189448158669867137539749914555000289889854009856636569040642073396355514993590897520174863473327366140673028622999193964460382192745193499214875498513892740461422603529399683094560579572327743904954688128952749039736428273773781540943934757842565437817376411943345168949616439803481641365032479098154786082996818496317625948130008791017146229959748841837988075624040679529732573402299690866000171420919283396875515955834747607876921562761155120961416862009556275244595100915660002638573800798784127446685954156826197553966184834941495797238942924829798663792802317683056153486931912771434087085958673919598156986838353649585972716568100882681595771075474525403824984764598911636877967150039242447877397769484855755694659371696356075095040126413468949201589473734088537911874187381266524643309803974187247081147050039191162473797488745041926812193331021261116006039584655616095017037669278673202218673319025745865634565779801229816832763838303913774538893394989266423082911684211605609061096597862268556485000409200489161402309494887343060347390236893210604133872533488331069135853040704467278962631164829896989949941905899414882485387256067261696804637995596471054831102783915898371272070323626922952891534073738443322121486503226059430091860517464760574452813201435072708525741883648249462331284546810833605290149747379946001082113015683032356063975331935314602053728821918009770806267875658765208758884241682922545666595539616098587045466238410640165909036159492818312208727813740328803468204053538388584630849905418620531151557542970932187933969287042788053190243620190720248591429694524558050960266276883845532987096834401409560340792193870538775220580992645718618126995505596686313476514156439868591975962734981959215182006771224111783845134058746153380184993506061838480946358024227157558194725388238639293343471720778849309318858080778539399814707628477167520378420095884397545898288034369948953173355969881166506447560470760704589860555262562987854125681448018365493631568848314402604073539397177129133333176874829706003546646155850583297818425084721255278261764778774794947830085257275193036242231571247319344248751600851737013244820314005354631015321496296602861096377821190379560522608465117970111096429753421564777262608346871377362606716480175112907746848972358122740215901786963441986261382048172098276055474721181610282955865676187501811261284401791640081923517261086934982341961212179852496192286142164851482575278107106194790990105691928051127323890731134866435201766901206576960898762989896659555919368784678834554296621620186408206317765704425283191079130297202137425877024700722026252940071278925916286756840934857084477943512974210128123079298038590058364009164347589598980172694981562104149402190126830322736201319219136890402564804258099786392146038626097333691401758220389642986286974710868636713493232040965252276446094834342250610239238489578048786107332526360981015052926234108644360522585653555432497903494314741928110972767197870349327138083312753297938340837142777639686956593201103735410250744948624374072653924783736871140928715725461234153674271776274858596419286182537459768697635385449422960874852220001567029132470893720285209749633729762380071956038830971456292967237470883934484116797812509442729170560777405643197904402328202022002111231337633684520732741255890404868268819187579077849149931136798031389579318196624083360025475886368687412291497748079784345932382299482918217788067605252600975679864983863693748747727793376946706344416837666386790062413888545496023218549374013308025691729907428695670855852455704684663249652535690934741327526318389967721675477034364583921459601321057087661734301659745112325538934169316796358935460177883461538769691860642865808329077465366940414795028998869180027285484931266229893897757592859255519913735862369480551159485643517290126473664196895566680209165202800528387557344328000794673632913570757064890188560400088470460390507266581719055455810262984050549221338986926198895723415117819287369944276271911846967335700114757667632913232537893609194454899932713866673279341349270047137638407013593731056132182075802626918078529908379402886961931068121948899734935604730085636568418595351849027414626119191906807111091793154948646663529523919107573380465238046590291161287079705393096369629898340080844817939600616626230312279087948461843297343280786166547304150451951700006246856509381241902027620177375512459606150117723534244463488567537724065088765749239031155492648995396206088484124874396097649593765311982339936770427899798185600409235152726735119171524690396473263837082897439258552689977240178092421700318601082570425416727261644740005273657053073610727123532899870575603664709090300105348607978692379540823325487149016456150414608540584259704646358196250584901915275830683268701985728562809671118367906496295259181296196051879737067000464346325670517674059870702388818029126044023788074137012276316820801398458481391966151542046103996966738969261762673852326027207836460907531172442470025179365036673022335312275701639391988418146502850446896574555059878857212287903409628073107141882432231015311664413409014316419040754216598603959351324657689507656261224826577737238678854778756557347453131330259854870153972434580884401691159118140180947375221369995324840443857998577834001084790052879963710495356395864019071506654668438291561072575026032982830444456552654484986281019597758001889962635672084171630332141859825116327427640491779510653887924870374254340135434684145588015572687421715765024925031090255521972645924232911920760509572325727175465698910226369028231973016142574400494082561912870279025764527879919914791261157044927025693788629440783366673990724081561044040527291931793628952249959127754680220492433413323721839585548514009492883018237980429206334948651041454340985711154161510893076112982030749117730714412444645664957735860448627192603192670963453117643410249535967018478738948230324336397894753020363874551046371047230464428383853896203537895926287502542426644965460165293390836414645729734522636659442655153177248722487866367786952587777633232191609792707165504834928643101356410028317338086373760455637721290623121731344601053878141514577348918743436747493703644201152300231162975924123890514929259047594652404519638508000871558771549863378315490402732326236494300495865778204785148387372951361112379487897985452824904266515813600695007203031096066714003045544497483805862974364155498468126282908362416855133612883726970578212248610985645284541244920087481204004432459342005814311548252977968362389417168277301380090696453981198356013114514573449715611043575769758316654935481247116128976410214425927790390239497544037228553828729093142583083666448620202426191613676265060376196352075083970042822631219914363255929557978951275941172916477497950127738660124034791417686825732099451098265291031003300333723162599192300724007765064140843409753040974746238803933128061047829883898198935119527842385392825957653185550218249683403217505294714578909511815903315527148332257855053475085822331061329764892671607640343272274571693398078386437555413922014991587796713095801839129619656719326825267963739019138798401812285792863065949324018754453155355877434273525741393138474313623803511482711333901704271121583048285646205532075116571163384589808871438503901433976826766045654315581557702515980810992459474099566436700474163955842581777393741866788792137357818977207501775137477712593843620458211792672669869332076763948147302741416752514576291030215778564013020262170824445630576977154303669365204309169318374192872659617453619239415905784297280736558658809847945105257428582338136581877137279848490254038972651374912397834146007261093418724725158834759745877048519087948537728336618692218638057962329387882617422532735761992089710639343431086716653168244125127292544969842247402656835303650342518716479555632465009038050573960730277862582655958747692884274464176847127860137432262570804472443991062098663362375920226810137228444043250286850118646457975013370494228636197296986902463660281515505836077452654823937444953304689398328729527197749924510601225061166113981966509472693037639155958108266477361910051356983732218229536921562883649318987059564410851113828171488698771039034342363726672953826879840349073017273308899636766950235380115207919566475435518896116018161907683147855064089587277165741013318693782370735774893000049397041764825077449491593203492843488794733188721536761955874189632979981536119220182310243920850003074123252761870440494787311991218681358277529331754266008963869789293280771711820291568385419467121272749377754142073934090505265122450454327689986235457684867674558157710784175957575399394643665553096021073918767560499909288151418644288089182696486091326148119131184451875084036102347158182871021807630514681252635616973416843822138817157893495762243141663349652924535320577131088447236079097037969979739065381198136494510717185115765567237749208410426258715147154628208643264523967262507735378126097829532100397120483885293300657280776227833976495247495241705707966868630898200349534371265092760648755220122375318596260559688215735589391952769378291737712127452706025732214250040377029722908594880582255179929208994031021272253959077795108301473418476892239416039576374669374218816248851035869430310134363088270957203540613576274933135229668499116059014224898221656189512518567114409749249785568689460316672751765613999919124312811144475161693969703703803804635504355326682193445229500275496139831078979741201032225770685753111738321339904327170664010638045451459378510411420837390523041425478413812326915255556942241848161908594321459654999822807071333247345687978895408341403056940328182203442154757427752443347836442984404542029240434635625752876275364177409648063706754701648663167007759117145550907168184886008889480273359940447728845558541135270642375002598888084645846022571468545773239786240603337639851859519369809612594348130779417150028463930625275852683911163523527698938387826147229118096029531072078651857741509872861674275697269467132727709600877440581283529473165656381943179755391105270588847460005023524125340841032951146107112478510248683809554503166691440898493663063861261847148420719956212587415212001174033488976518717421571382942412531143607268390897102393504187226008250928873021750800975692252413787827756099262372105264675004312874084216038921860383376268945953292083640930584435822616097988652356049338355576505366909936068694172853640982873752808195785754555827270600454027674666185778424488995860103719730698161907940182365385997445987269363548748561439860501830347381864939170756120342660007771001991722582041038327506845528152185503870825711645043117145367081150612358645181658763438914862901503520877424429688014044319985758826161355135004999272872390903700638831460754489623675834007211323298791397211323497310627829892820449546582421796725360373261926882650524172310624976288064150964824574630613435487157912980579173782351851185040562734104324033276654089653297916648821977592918239709573137426812971475652349045683923762048182572217884171285683430800345165868264277509633734305926210079779677886856137106749798103225850830149161307149888984219991819509485249855665602161424313387580357494668318925895143399106628734867166129074243677731846873430660163545209835844177641024885079476437421710818446548610749244644475106540123889029047850800737158061636901394132888525925204436354115845628430606806230534442434039555358968808241254818993872459940921202192606204243687508631078164276200816257564849318802001048286700219192817705130509063498560887393211166193504418251089726851406870054043913321888871706681498483702033984004862258576056362759199074469461158203519274201664568504727484179579264067315805812123779611395897900798456273499128320472826100971806561479621000856053081494833224486773356078027886092148007320344703301628581608182489646383356143443531688396270161389261667124513587183018939434148121847830609083072597717895789669155345208672279925055378970506618593172701516996259795074527112037578378149969875106920896494152631224766157077456229073632345123288023580352821279969674082392338920963085498741841564741481829311888371383419353259962129807843849955542630155984993767996306769702325103412033981337695861536619719306978900678391796047825638398347562682087055704490798945879057903005141340619445055771781384778917866580430824966592596159560813465973369403128412932179211813588631068024878783729606911229572694705902030888570092806412557957313692575265774129994244368280851622930031054405823276124926523564275776453269888045146439150945083601614364681969108779408266739788109381152763232066818257008929635754261458502603789263576912965525281166894737273626670669594568357066565073236009823977806859936167258538178037979668893207537358629678575119015685165264447170112529899917953043982652761357274148490625585984433549880813615320179963504361044065439338148375845199398717962971736931133017571219499074835908671426320060727911107349468404208156692724850885638763096300372091791219305937848410120147504140803655492728090867489928308184573902983266548510451312207544481535642546088459057739439254300256995917603816996188270458124600266391793616040764572948443183760626866935385580107375168845021645310553884315565345558945626775135195746264220838138137422626983395610113750996968356035368641007769798361986792492701612612489810518719049426836428550021986713547576097612284287560312749552980268625858191859954232451446810282446063869217135605614176822171874152009713043132370616646457184294885857214259889317676765276794888718860103146638255235968626114817558314044494251957258715907964549814507998036766694037288959965168319665914778523001698391932811404689976805360673028247676725150911463284857334271337413142060624934467385864930666622191585012253597329395119306700987837455505803902302333622059203026706401416159011055069921289753605382684310072293222385234698056750291781569449720890038150891249910576590722076770883060370939435979117111431390983035682464216499918090724226257909803732214727383428516139785875354938246886255863528365646248170421973826125951108820157264943420811070528926208452038099413142261679317046085658741766162778004775109125908853094897407540202292121923747836262049791258100153199036423025160499621248963900821537769674346351100932641832081077180520895971328752927935979297793730130865357158689517757020495901720988712642760239909279301255067295799770310546901858973260826841294124793484079294169880448948340566536997511734047003867667994173780412120988019292118429273394403491773700882562671335129712583522812717198343543572242517783974800867656756879906269622147413847211881494511893718560562620117495116475107517023148627706852265334329946325048303681540641489280662474561387618461528981909788521794599807920427786131024556079591550274266570321312972937887914470185828793811826940323004949106098385106465373604419491656854032845597896556951140942147003322465784051657293867674301616882851578218511709563310111092377866098015866377359982317552069699605995767588990895384997665296611473863290453645353449352872498480289737720701526974214864029218716118703132959419759838816364366821552482837956019222403402868287832298890839277273838663445376692971507824574697076387022207473906951779356373376952206659273213169531184119980089253966350906665683034477471328312120792953322147209619965088072296556202816341838787590886934850948426250690158667188498292322144133879571474004958280305959278078852222493408226207199485514730131275424740251188706200653431736739388811584289198088908171159522865088438857609376224619330560613159982751384939597468142409224217390764082668322328042539479764107169572426292632728323434917632327579159007329090963482479040602217062786512867170008831884515900701371244809172884720527357393552810300118714272532082045941203390015699346152279365005250299951938144020984760715833684351924842026083271365334434815988594216603210517017971414103900924836430124551747131605582024153645401136964110571000221331105851472445117801769120835408008724314750627065922686082923000497257929693430074703541227969053793989455193723645171773194079225884566621856558054724706840351731527400211297646303720581613471057790362495935765391811737447981269344099730453002844540993411370311671819530887228280157001499557932549958785055287095511070213928434341170514674310347988041323713639324864258273586844401739248372099065568486602604554735237454294840108275226567461478558132628445898450472458345308443250777077684477824661430744411821224310189346485928693524554025753471967041489671883220705933604461626769320814080071566844433882911111980170284616824237951095799651080249265587552100055945148386577220705436373411432407413272738028237924821443767239913532929702061156784376509899553097792537566363864502934493959076216992702832366858730956193221345392363019264015275895582619401067955826795251548432399276234745498690614631424601587433689556217529896203791117119289491371008608354405540245648623144288692818176428587526948484929554888506188821408204806168079796152226178423490457165398337925504473144409715798711777208107242770167407915456689233464906031125082302907471643133530485366242881747890412210166877650187854769903179480605315448908684937480097758381092709687270619017519512363993800332674713193494737625849908434072714131725118446178547063834635580031877845795431683273719847234631133909782564162355844608190712717025993854443967895651484979841563949688113907443218310291089533503876651790228160577753571945039410299457996219804168271006515730173262361405766285231400304087106329427991285020229320900383786982487214183874586460528518976852835369077993275598607630800884676134710543861874182439128495260948260449136875589809005052052811635540529464416443554711775386253231662046183288536430198724354651188043904419434953248445003727808603935080116730213553312360661046444754313218823781008403251656590829494830516368782812820764864834250986840198467766215829489953189832874526394972981737209342610397941698544892364358044009871923333204590263364486323108272228684823135457739029605541256106449817073647254054938164193324563784978109652186750477776603922901718524464133296570199734532875407794159867475854887742283704287929186436440730759943095822087637035824144824654872049220200730414064622259027085890060425953167063595432328838473659668093989562708235343384378006561643545624572718583055447147866354434354457505807161859781639012052620686263579733422186741423779391546642377690586092303467564719839056722463664806550604300415998724830012495144110103304035460563407999592113013860720051574844615940877016871799914405327151755758459054374922483400849509887170118531628935589116148708399872086354952441895693288014786969913643556066843503612475493642292531648634242048375626862522037811455100148996633458848733199943245631190356425229309377405038632366548224919594611065754027253514885477294889288528842231897444072386092093053699259667313827945065986999526377746104277304090634325325317331953245690361188876415533197881047551900247838845746164053315083983996847449846894568621257444886252702168570565518768542668037925597617929911667839567083901167648582808596023537242057107751972113225692539350386642436714591435657399525672213455837253223533621365205707952805633394179739015747574861059543621016326263286956955134033030701818689248784813543713473610185011754140999536294897882076695233689319095321025304368783803383807350344717732924136663749752230539000143660380410036375622643492644294350438317634182169182405778985662258969432698924137492185932357452569708317112732603892873139271602264244235427230565878531891395521148553318189455462303532864092178025534518656757228948283145131241921182446568671171098585518360070167273708113428180906702023903315347217967204141769826913128240776357375866972775871199994253409918616925511180523286297820149974147103933054538922258641808534928845177501765461063772655414327425032328812556799393809319283746600732940826739819289265263131888701872865448668142157008667752286857989807621312127640439819811207804275476113018159457719795945250827630277912317748836568888537368086228859201689080184440488111569207902941443950356346224682201270738133253816715821566687598593135985136337431942523074815105888479250871789398253918884095220521447749952054089689957857184351494110355038530309546631326306259066347238399821375375292184577255884634848289505367410941063949656080542699418605364370451420190403335127626861758406539039056839898473381132408696043074549589095034794600389640364251744102883448592499137503950777589590075370199391253238164711101820073766524287064443695322952890610023922211138386561851919095488854492279382098954092676960038722907787186697794669843747615940992023207980954737721472656337092547243248698352164168048615564689568215244977020749939850823905479128957688266746892352251427211262837609843306296954735193055964762215273457487312978021085883515834804598671944565078654984206272343097449014288082766763314677106613256005649423367759054781824832816672141248655481143362856996107935871582281009693295918745650546855473557725967295781003965038203601647001338027744584531879895404878634532321881055395392407768646065431127020322360322774644926837463211878526815574835292383256930361498377602415695551192770279806295364080755222210972604250462419459963752034769740845823893136472018144481117321803667857267306903551562694794397421432753219767145530219069739207972858169781322539318640076987053313006488625986566357164957967885018797575932540010223348983615075295122193900829001196501068970212450822785156159615473047802693629584250149128914077678429880041221292638582957815522442228842935677117614600419924750442661592400128249487806759913501766804546495604550259657436238051374874607063707410837917142874470997106843362675712159909267169397271048229833332944012598834673565226540523674310579260903431308384226530400609310370161138618312671993482065032985354206685240954928546629032165016030811865833823705107148386133792817294432004093281122044168256491028229742124318922359979066422285627310605234024317923936025120658205145236608120867267966260630771650741658284801288128368002775206969032361620860051345063228810744524741221358461554005834939560353695042642316299578369732172176874193273121222204272549467294079513173151141906007536793542211801048122066400443387188451717978928192463488911167841437204610706394154293674691277639652170362014967815291543853182466901135658866894844768359342615132802812606412005438134862381691596828868649726251445953929577575172892297080185942056372439330368193754914285430347081197936007759440173530517961615483193289594784891507012314457324507237654218058952811467698343778415788766965090707192664891055633841792109042984859350954119038645197945391018071604995357584721359978849485791698383359430593589357382707371340864807936466135026827946051168434372144168535890187203875663679941992839027088763833039766739758095026874252926789064515552251228909473582170100434290466002831591254188357498623198878751676985691299479210104987744660106797548500647886154823652843255697358788505438906785244987530270305133159041357439354190511400320796200446972353608444004513690164483043429058981141648860254853171320889588502277494032561905379338950374677740476278730868298119963088004349667424957038612134000982557594507558611237891462526308310501928784258814635971995712284037477159329451820635557404166200849923242537436886999686566478527197835954546481475774056406760039255325714097143845263798174092939442839060055725899462898921329997423080697103286062743233121144305039877452184558185042958776187055484495314971380717024869562079337842377680828513259752155907188464641180921792149107823897161224430459436163462983864040187384967921011095915203970716074138508631570153647865364351624875013314557942388130256212868195120653189368478700648078154124081979677978412091863755972056364287054772800147118276166806177549930327121436968691165957568539548712041204836436839311497485326215809560885656046133403337857281464909602343240206337653574089826023583497945107302125485753530960939554279349371220026604121026656913740885319284977174030108530694829962330467367482633989377744729087801833029559389644915539239482154734289949964318633978375257554562426939050752204603034326304465068341754526718129393879300486126128069474082052488757639712757081255812906274363733277908206429990910242463806491212278284568237063768469946554674660090393630711961140569671507334903340308319572076802241919968294881663768113962120292188921816840203444882514014376708033912355875898604227715258847886935074963672764335050010659568481585041259770228791010307967318274099603697145509354095392049165273271594988437318179209399186444504867110034236974539296412252665410104414927414390413255037279881681877815353322613363121132726633248270156745814899683015697339998782644984276175368815663154187220516817306156376941424427965199303002705049057641148174542810573643665939965604354192124096477650704453521858378187492594966056023657360402859414519350669158458151829732602390033967407085000395697036838903283795570958722960256486178937497021307612950579717563612472769347811762801184822432160515079767323567426999293059830093040699950759840391721480939781281402247467645761163627912471981362128203840261785428218973254625675432966835666543223146217394159974843723706669287569483416107848783156422370531877444549224133138804129814462441066102051804300339207928679681407585203587784603890011542968978816074544923856943942648569753273900637418095843776867927443531271814699721428914702022702862662483879536307406499760702965157535010283001449319044869647007546396644446801513120032898545743776442873497408875905713504277863892112489738764513392087657875577184590188534810122956094927019874737375534985438360280592206078488326291994229784421579507461845075941230934156036961744769612346607259603923213754520072345895457756524299616382148957362226410352238437873038549016033329683187098900864433402312460324660378259558982251162864740726277575251595159432346080375500580912550148070670557102223827405950128610126800950872184650997017677241788708601969571620228188657585870372050937333413047700220922481314715750596204752391194075386518802295660380621173329643604691592177444907552703757063505842748548689937660493324564054260209384456477737072278706589305803835971508815304412605875004747967025757132535941430849933403881035552764391010134238612776720509740923413296288653039934688011584617504018296149304872729261422783999852224967989238307077478348980068844757068914119154618720352933605649493599560644566749330522511752405464566184346614205812152595879603007891430150864613732629108942938308952494478429895263168682671214571349862555548280303645879253423757803609501700950901542551721463000879053879252980061117448995408278579502094072300626045189097661661334880335264023994689168556783669318724967717915456454479419814017153332414168257024288147752803649714034281536401159020323270851403319687314981888540612240052357479945454081647518823786524932872750980028021973305512856702278324927740965955183259463084367547694999875447303296262816991709197706838107943262306139615004268484261753781089315730847352511137733783502456874286796033723180666055514538024692201040745888377354362503538220566034522642976770891902733216687221780391075435855685686947645784115983804364512006034515728259527213163581682309092544495153318303533242854344022779520431772155799364661850124132466923374404000436854498308453829453628197153671837355845641561913395114061682996990852150294843900904271911199101475248385315185033241601898978374029689160927975387143240393364594326023554927337076023567493859501360736894261845071322982818268039325753586110883938688969614836950715089504042675060957498875100484277600220801839469626437328067675648270344863318707833863504877099294782918238535115412157670330473958275262891153661955617736464423147893950284494980499987198075461811952841726592596291128697193051593202403170654753098745426206595890454616971784481465870438895598847861876409931576010656847188615874784814751704268270418838675681246220984804077343305812793993984988346675060062037785631678233000120105807033613716961786472448908753536059342994629213104045906535212187809750901224295534845438802652516439270246081229504288221275929632902158741888411892287920992223427311919335935090052395918216104818942942265494884163250638229953723093798376789273059812229928763094561626169616223012007697203859669543223367516156976196146882062419058861934702098357790906253316800676834230476036933540371799335690793468017159695327046276376901858282198385058974269531637921329731610580551195610552085607166947051279551182648874182351269136931487568462009393464997807559616662061461103090192170956984033835603538221449424618206109201333339295592929611908189808118122019469091259408222460337804241439190329864002125844452348424970363495344473486801131269364024265718617892134058834140053364397802922254539872817828126815320083754923466596514751986662925438187350606269580367038975131854781015363415055645043365503207545367619944346192711319902362188924855246440572148951939347781226916227206728345600501227978599930437080306573298811932499771687602455540148143036315757325332537850204469957238643210025122070272697566786865774222299148036689477337754468955985474423241090077598220648557428213289877333354007677559380145129241397334445885530399382092465403156981925350300525814116510420405529496319355028154387097607238632379305298290330315284192902711879076422945301378486948365884278744193045225912186402055448924151542037586223838646130815152529783657150050615533943389952271895873190394981069152263824458259892885428604971260311426021023772399831226459185448525524092314263887439804923251318068347976220581918612001267154999002803977906545969652128514588512943697955479203992617925287102932794050109782633842887381627993585032624880570522070500281658449628430443926247996053854709213715865781916371303976878233440403823185064195764300745528256779854466963771923988503923437559723448849637605499610484587199938370005702192335032800044790304073709509391727518758861375497564445804484645728046759978120913710001471650090362812605909369606522159650911804782891373656418955784016033033434794207249709492435552341814076202831205204481922008424216706945821600124519152686462666686126719058796022201805962045712418604794085890139649583567908384643205103379530343241231348785047726743272980621087343991730979424372132510066980480764938315426237832198402574890358613997399801845163646969025881135625116557611100616994881336168465560560990863232111782590763435299722448736375869378791232223371027663377828099700845504774232649434596889836310414546693825968524707224981688818306861977539865082577901855088480714175432030606925226883073791650051021695248893962548623101775474382123918871652936672258968629717535925676174618762845265378654389958745531929272459926255419360046648671633622850616469122669358761315366791451040506732253693732358865272103017551104687211928141030879920560979056581899128706252476594455064033828905689738335093966710056745386952969048258671730696985116200345707387454723325806191792892317915891550778232300140329709164556200950421756964985964863676380005381918993268456105337885237871837222498008750870398416878519028186072356508172190168209143265071684948448295614512336423170302027801351354572843899321690447620557049131125611160842498124592842141059962212475046369922945142818509006398306897133151216637946375450780889313812149091885899648442364894387718397043582247675835121664571775821216256151674892995555025621806319436386509288104241383833018653048778373294088881372029576014831748967888228008069394336668132144140306178663427288256852693146700727877082989502000329527858247036273217770808522480952039198743176446940336007600666651646813594679282784199727457825720081548983839412829895706314207565022676239185660180795335862222916798546973427647337033296882346090912557442988816278952519854960951254754826185825363242900912025909659430723277146635677833318074364153307869845178858444372476475390248260903845533427617156870908676113119545134680656138455305120461566020705787436861450760805415909712133767354609093399181352389664135891744358650919192142799325279527223263634605356854915374837670236485875956784095938240054787515229295324945755945924530656164836792344097032567088815248977212146901553887261768832707994940798137792525049511601243989178988942234698099649100012767828384484211270357058530278565461883089923920604932852816011661735296227638846197715717465374666541227413680312323669567760628884913551812298520438166852245869738449374630106948239459978057694232965476327374372874296406778332565774297251687678889127298857657322411962507824395187435580437990590595469360953512999284101710258363902711632474227951914245838752972090658066185732488444338248419327049314158102852643174683436479915701716472820472389338879777300870088088557991925805554060801537329266187603907175022649511208344754816775854546215963593186484724754823550254705680336686115370188953458002163229421068136036965844239781419694874273673867515692283371669820083428355776828988261247925761607731934993660408183757158165944460418155708554686736779610370046271951125316789026385826612311951640551553116713121066642320213076480376679262074922328737760243733479075038875813770187966865732635812925668418853088739141896768664310461873992314131603498574759025002244801076086903449732231372068146722558105445545780467748414929102668892816164654114678807106372414435713277815499802257138611192569257931309253003861851299223317939948774470794909069512536825549854605644969461659878870090654955333040209354973007007912355544186124353030746867378391996516190147216845174864359427626279852893518611786277818252753487715728095438872466595454525936536846626166894690060336443038258530399389888891350178376086368852641868110670415451564819473515680865124572763871117924790323070743034497671168373278060706955577815268703986647070965292519093852636466241662686395555065070240141523049511481835365563742791681349039719344006667088664187586898956944544156457104824451794049410670682826296531885449330179273031897522502185890827856988267286722513688289817911009596141321186551926897845772897184723503523486588574210636416303838266820818783037929797505209607471490058047040254181090178169076255515281293460410278251189974179884770863603491359016297033209421957337274635507344195655691015571399269559356945899708525022494207033788833776025271688715130801913491628610957769140659143412526801627593872545975943634410540943041520281234720339842041318625693902475880938917563549219842548589325837005092198808951306299242008884912947923485152811529318735424275017720388383789693040282064587032571337935638404574535818152163273605918784671710672671448607889016129384075536155497968836019745189553643586173472787810517642494100922343874617910197203022960108835867814231937480335050087300566874876044791622117845969955018369706508028808047046244926908027630793870518157792325105525138225567576912981531787314581414352457661233748054560864537687627441576672539752955005675417009025813978062089904088619178888352692805016718971442416892481012318859352846054992322910556096464856391324167973539818219157518529693892566264428347355427904056819232587202869650818314691438866538472761229254412897028968841100817083618694039437268346015117476736787339054633189578418961839980798175431893617636771748389552667607768257963892119783434157204393822616866117937866541231964453827827905210138271707963152521900199450030018249023821332797871468606466023104136024475545042645964241007981876251588269613162265102756635332655300990401972879263504587542920023933713288758626667461111108679629658167303262804456684452709875495556744943179217562128078235182071709577383158684205553604893925213260840811609724010639957262845158747943893565268580105936910078134742325970377798964427174110152433071608447853216054274782691857956396560081821426316987274742199208068500483800177432645558535107124336801931166164759284595223922259709106217295385850707861876847897545699986321845559890112577039865602339131938404896788847725225815351773983902943562608088083377639894012397018063884237876798804614695428504704757677344169412733287231375297910503135169717986767700156398160724611193841393346218125940482811246465025062163596559457974718762519262904786297582529524797694157239599265852033709284134817368926638653723312045513576224707437871092042919094263216097177603129803779679536201790483275207921623063063686946641981652395845679288365243392482613016920348165551697706916974582542452310503485644640613116104053524099429501092262538358075071673447898642971860588654744889103037264633664307553426053647483207433535009039345351506819036185956911704763889903761641086738845052038287125264619237622143370815895427602104408555985897621902091602220570221887531764795180261554353215313128299962364744891739204090960974675608421747178029434055989719867764872585242971986522065867622260651468849907365257725049763746663532986733453347024095865326595543777652966822462567162862213435386708862084770845606730895206842099470153864675695577688996199101136685477301669822927433760605061988458742495906165708221603921287469643887528475408450756998668598988259199703739650663323312848621283779164372887791392394152162224642493635066250764665408833713453619061261392814292589467518968674012277289351291149409097809892022172685413712116518425717349586506553345633433653646829287231148724704204270561961906612002884896420319167744017441749112735633785385116012369250135801713827040125498960834968681837532420052637075937218860037488989116285550112201506111943754421620070959270811361779780839192468919125597812541775572295988345373554934109254502819300483974553052512368256077269833252340037243123220744021080334326279196165181999223960828755379656939387424100144558705489984572045670278118450314629856422603027975103982960047757870245501725210375763434882889761955384725000000961213735339596324439471654892784577410919135905265737874265427285082085995080439607357875331250256833190607080507037615888540305330727154044212322773922342313527483217332479836091638848336109905625341579562791174975112915968510629243798793388539090907009880035037083619746750505778091940692487032313630219238120726170183959788532149646790034355166137017097495157521842345321073166304118787702718777005040609352774845669976297271549132860371661380985741234999908738685989144936820509807906047224857626645394704142739407745772915189741498648143325214255954098620748950766040956113206766263459121673835320007029361592178077138384546862759622129922321285354185791554496229201484355527585020228589901832448575282328350920311313024842341292515073857825708236517935421835011737620102820715048243782869593776401927891924056880595413296199550295140685503372971655073344576322397661868688102807792195069319886024692360806091274465808989154402192344063545037382213754545127821809281961977023191369488510393085535205867849266323123553116539304037811980613303919568726643274133876540001095390011736285646867288138450977082443192008038864833198221738846980663477712729719072642210733844068521884304903106091542776044445422788299438603498988597331286716880711316593768434851739931381222257941895641911400068707170383099939775035860596682430781276107921115440953205060336481623589100839251343694621089206694154862692718808703520529060945765245147367104388589883888946146907787427760270486916497422980291300102743645408202263514751992760971762417084887672544537583576916639595975776698103228290516077111366138684756616529959383971199905082734367045522259452602128440588397902218356754491332545447600922332817453841886374752305760564777747233916055558394422882704502317488099766122052189800512465567374459837372763767471592077621931354917300631465911039839181234032609047280081687954022869198093327986191275858941774505721151853664488973312902634784101570764847812168209026266488938546140010356943260752707561212056151352486126027552164501219124882348504283721006894511395170413685212289308080103173123454185464508978425563150418665036723705893774537003687695898051557954920266689360438784604363014584235561399519513854932518624864871581660604470675282728775424111280829616906857262058990408225267972107143045342674408456929997186183640738980358037231089791140861792133177497269576677543762818213991118097868465432466048566131029594307583632653177844908640522703653940531254025207817795933473449359527597549412478299454572651330315670798808510489569954966157307405941464335284148485711972147679641730217972334660166042539681433246606350812208415894397603382309253415551622677888301040014505030878565460852946849917286353981497965903300514663795143556906747941690207782185202586013052782581390135212072005825140623866774934755164531112830661109213613661064916936339735598114580402543500103378288731695600931229577712817297185873517940951140152625740211824875732475299167023670284705679130379518564205971944141753552646764126285848381804940197143818297388304889607680876737923105087988398725422389831303757531491822629813141560510496247681701991410557411912201586317511318164816330738157297674938905345211489671249038056375178285759669570507556187033997855601706066581623424908637365341247640655125068042430289418009176319188377176241134228078351702205787769367575618809123542230846792750428868590941840473622557949491153769094381577390178144618751210103993448568791894601192257290320356713760256034811897724006817296965166582741882921211711322080444370222915213917383922842497936857366261482644971025285975942578634204922388269842151738787672923381769675150534886124153106521264857994026408437518072659692165967205881904253718300510577893164295594260105033609652784836652512371137474709062401414324221050153433849701433718528286697140280387888837171355010936080626028969907688643207837870009435876725082363886651001131726651771756455266646510948197600132566603363599147423216365755743770109099184572541505800670228851980241087341239988917137180040698576282328167438317314719880692959733737121783902300940091487991886621864385875080471597286298779801463574888490004605484229067793481135851878143253605351945044756579563203553770758092193589439955353174307738668499122130161079132575102700464386686302914246828488226047120611732542441684536348127796502799305546193773140237153422827833662521996058840840349318620740292472052506517910179942510638132776443553640368269079878191593024637743574700484430399455890351678560518066834909896417495641017458449202536752563715484475163177999671485325381807207086038588603224907612949041629999692798628593836388616831202781013322484772357998594480117168706582046405843366930455917919701695965063732968515929064734760280136032057778987024306293915653507671123492453405419335534285450413061908852237761705702168257596137781892277040710639531660860868064759495481432655802285074205683605746859632213445970716738903744244495072153173096265337318689304057002451132411398743537624962216630090020877574226338051470720597074075088268931033347677711380300270471592964604604097418135426121177085148087839148279023445112364424855859467547752910818792469613417137848426423830760068911507425359537976278302468102449276571008205711177030998231033103166810629913511588731200470401340771683332679178614533262369741987966603326561625664752885866077205725452124780098851901257427114618536842174841321124397868638867418883142461050762333685365108422297009684671555304875270682364250800483531620737379600671989209521182764967657799299455964379329812796953275793797747802018770378529012662619996956859046518910446336814201199577619521819896891265749372354815074472191248625113538793904982214584796246596973033021718894265479768192253072107618981664779170107202022850138476294848105707985239627935733195582111137763109342812182745533058533998095217382178583397830560802432385494602167670239903242015631915846303188979636089265051124647922685606649584200059043701023993040487295876249611756760133542095697042087501278512652604933925157020491554141573171954184479107626827790693266404785966310894195741517882564614626049993446868774881878316202328529630509708840641328349968547874143004661028889480578421841154251556457575663198707164259230078123650637610703700358169167332150114997656415698694108044298787779198057394386313129449620963268537600982154754403702609083311219989913162089303039831992700243827714422008809322365429185700765636948674334082392824743428422792570699112100885712664356545476795379564839109034130169250858195186777199367195521387636957111114376537824418240003855985723236557137909838622540985725169899178470890478573168274821549260466356112772817504303852938195961976402787236610536655963510115333964790899656015272747602967228590439330113757458431249742569865319650675019304685133749356258883915664192249315675139256314533202049752327322934510241113153479397502647669976035746345763634985579042575691603638443320726090080743846074268615786211036383607798328955175053133989602606425107757457504322884697648448767618000657762383949815293184827840694177698334257169874468839930925496552232190777345258883139141190031703909808318728042409667641489001970950050633777186171455344703471412741486155618720843130186814190671120850977672020178538418360841058659412627673000615892278772461163055376160460166476635306090373269883651479568251505641594151230634213520664195646960865850063126941827982184077573061327087981732272462750340500233126965672786449876653674591322052481463933332155399315458768556321744263881527326571489551852493729176341969725288309840512274540327594288172083205015514089383635119028061141979369163346688651736157557574071995938038662408176748686132811429231215852824124841220292088882257659669626810823295536630354354689962101014265706985622756513215273333325908959516994618771593956518231189518416124827773201920743074016802868946863056692847807109551251203307417897663560255640201088733622128099546583198011008595392332404399724904878174734338695747898711932632529010511244228770096094244131752319484783922452424051678826722954257401784383506441677515058219736479593510289453944944848233174289100458404722321460697345606079996248489215461351011571595804839574972071407963548333215172723174507912141042766192586489421664401358524787938276696909698224855879884859083573319634335258794914435694507939889070274627641566263972186569730554304340389823634624615827319292646803158486629219035889469024925099898576061630650393735165484643019024889842777501602338506227488028902814713896401303453363140978848501903747757354243517036972808244169440021198376305462371235383688566637506108145355164596476097467311510121368536439858954594259508434234278665900115218661932634977160118389943075032320130390150988345587367988525619645129097517351409047193640396980550254302760905412485206399190761225339178073594465956584069935146687596068380960667757826178024061619728722842692665042342998456309983073492723563055599735647067224797035638384732289445750870017085394246906194121836543824677271088540813346536021487638410149248956945102314502809568090956536950824966352584226869727640664713397187528777902347498533461679256832662956128514091328966491652790148123393052737817505640416462899444045122722450250198382358918932045624062673379597027094640488135367533815854967498844497430290863030285358726361412605390834956307757261270553355833095362950256347988019051890674309906854508829952275356866915671933152346701478896698146933451286414628302044628401264524058368334510101030007671606703648802077714942515799751944285580360219620655849434345897356960775850658952711672356742659406582681263351774000814098945559605116161086933792785950868027847878906240290059611158263844777345804637441618451315616997196162984339340345409901693926510525705782293784241210579706209292777895046738113903797833510379191033435161057106484002676227894780223268637997855602733683684702842826499269356972700133236994492566662330762779995785494640347607613211794406247070540545838530103806747622096934555472558297491487760359971507110806856570391281821006223435812949132814434345309492847474561574438570629069258671395555225650999902772389291582105861145391671166237758690299738536693802268780603843360031538672003307404297254343593974783541173746173101399290474629565508719111917600481631937929602656407140890412056696275205636804861811462186759922823642813537202172111129917559977510335634485797612587241125340700019577881638384019389028037343048502240654033974545037276030752965622133147805959029958284558023713659227537844352172066966719140299595015057468750916444263310553601181734375836615451036670143783535951608870114883793027674364932899296450737424184512876003436368070545121610908427236549485389455827323554789399944410774153925346647305515695735257539119244872982003771121106791593677501054063604888863799300486813923908004785573661396790177999461556094343135997407743679790293015943529039756088592241902514330701572945392550724469180742749261350074013650214265538124236017009668401523484386002135789914813935786783466222565806454271102728618619095466953559472791057428136236876593480046271951679189539015708046161857217023952459328222532272057623068083581308020147548465454009830363103832272050101599203240717503603712931193475492935610526615185019974508197761126847169046456519807278262272053194521517963478077724319910110510450023093423142934021914236534299760539686001255529682091817908245541920883958504747312399746868343707325309186837882533461761043973138884892119030309576853458895553233406946643125738776749341486201367613758667128285956122678089605143357016095231459715158821617728642634320911425255739211817009623751873445076768337611116853854233266352185044884429239150664113736847180820498626135548085214848573719999900949456443935308900622746383460719956664207849821839845629651338000490715095230263228219975859621291591120119036926883463995680861896048372827538431772078339940907819065185679193283826222574706620272802556167365112003380038579285640386099651906576693877040576655313357570342412533966082407964841817802759292114033644338390219739996903698658981224352531082263937353505447763259797449795309281535399591779641355974974390906109002395983903210578617687516695038076703540163098486284934343162102716733825712636596015244990845611241735038272510991517631114260049938391839607349749355246651707491756377367933644843590241073191761835304878270869693711114422250908804076085613168903784913708681087977169414042951578166809806093236132019000032211154643709882185246479333582321140136335719470671552146211389997862053515334147584091226740497068878799492882731514726015196001376682287245945448053412039928851258628339754417431220819088442804265217729063973211535821684472422231814626181688905582223575162375965487758042160280537085346526834097622120779599712760077637664230816491378361500008782832652552336630430137953693832951842566384220368764651880241984089128772496692652499716342999391491304711945084263587667458824819494777959845769100198744331778242073564105826933346942944073558431495854819039188569565290105816744146099053059509729303966190493491161411657684388758785145852669259503395762799263436503985199667156801914090328387889347571650473247925614288082994221123196918598689621044250650949081544517868869909639871971075342901201351153727495311084425724017544799658382243657271933660000950839968860062260838536588235510680413545306484626640369745577940855788433268668405165772200785457380192185928737719747243953568745401316808683885548219257069575283052988964169385517295035169312134945419132339756784202033987508781856288229590621146913404878107822257831403261305122252320217697613943847915921182008936659610692970635838734211228274384685089872543207633800125476659754701234335860028256004011365132661528105892658237491399267828305645107395499377644946083480968670752731589427404958658271394187583240969955843194743075208230146194897630522963339887365276836257129786170003849688993661473432248210318911281339704146643220919869577648841723831053844031947569159129191685132631327364836086591346999294506611008412957904946462388815112649108746108615259880249807061017550771169460327556177359347024541398728264327465707291264162365067840632990517005350714583962441826112791963838802461020598031561511294795927337423851204479983423955771764192253824000284815985986712877693755783752757677711487956854584944428061593635508928984216521294090508404600136559651887792795335592718733169595410670225464551562835619309729537189162684948548228070521616136329397412995089493750166622086065746349265369558007144478187943004324958478347164604284914006050832015911560931365972791959257518088600949001322594742459761148849551549147886134740750729666864321990180204514687624163647859006704695023222926490689325643360822745754109587192137093882783762265865097283033054983372993386422003892824151847785903162341446268917952129120841538378661212554283051074379665073238948102051757992740872935319743545473518907699227825178954027835166093845216411987184129018421685981532982734447834891298263376345679653923405271980160356189309877348179675334502185692259827429501775353847271971637929075730364514886999862697750214530746425625555121331717762911069136305254047891186934104361868124416618586237541927493768074291085528730178545523842882692324259323376274619941490898136609293784313968554512084796725104453775268009848549690732485505510378597687446770202780101806676673388606164056735745447928916388312133784742466788771643992576273680072790199617671961366434171037065377941604584624785843416958229474375608870379435879210464282403424615626487106049277846768174239750092054134192005441421276669091038319162047571251322199482199087451348113895703695657319656438064918970471996054647401800735067673892716629521779290003153292172746157394903055722397386376720285329185436970971930269164656379613970083859290516334407612285279981372065277985535111479438508382163507838585654710916796483617856008542986568350101729839455223520588233630970803365903073298427226851474655945996254020415079941399451686451026407062789771178461333616559331119406006308844074603110416769068528898036374122352295692922153419807050628238033242065109492120017226505265644885311260507086520333107942321587396015603394170088915761386308493731816146749134561782612782657297778811797356343053103903502326089208542504788646638642511964286093501743803647014323771809192949043022368828333993062080168275030809507806128653208991700764411018087513273514219378608556078874004708781864818596929962950073336002046370903686022101149408761556881430426742206610947094257147463403039793108502342294020578011709417791541924376007890469605046640840133354820177474512786107837636377960364412459498237631870989255250150827944055143848379838082250146232180339702661483441427771177782478766903647906277489232218937143715044760153078384450204155011597828355685356281941636456152022485253239534926838250794858450410720654341634159373009000370442503032265770437677126095710703571958150308778689174629502503859401541272208414017082034957894846191163019175907947871813425209593967979494898572604326144615765557602712491023550793275672764727501585162063145529036195867519443879717339085569928376320967129193641052705630811107480090719900209291875410867081884070741483187093514421772072871353232341579156325925767705740468461297470919106857772673910369724566247927114548798956032359825187720835782833719979162105891837314259829458618211281013777336066556070762097652389591507419434807723403740513247390397617661688996406581179596019184929974791136648131066335795259961354078672663831600126629146133788920544956117584017332556727142016176783792428690223329892214871262349615102091241064415461383113661976091210733067673537141373000311853053887624988119419073825987938181756373048284416462778431010773345556531480571089148486113053330639814999964946193280560111578107416793252691666210711008900664496092024455035379322616143120415768167012352239288418492334886178099791744402279073471427057954787886307609167554379450709230940479251085643756064963990722692570799359779020436040783310831649113748886175066460378707695771167433768459185613278726968368752618262717064881204364070629266480542090728680259899792168855760796237326050670159022298031631657284138245841258297911423489645989180441782450426101852791246347670783897503096905969990038480757302400847811874114447603972008629306313198295162995429949508365568070089034261338216601225252344033380833586469700805858863704449830757614251299723137612074512391232020268950895570547047127477384243689018614270094343303216577946099822615167836631706930577144877772735442678634416511306269208722359535543156501946016117102756533714875143081252385686326602329571567471831000639203506366440195801270284310929765240461703185464465244021649604892498293464119079906534503057812466196746511465493265155141718385811879805807775911532901582996363050102521193460763719477959563292296906590137676748290085809518292842477832278601171645373169928348206050623002161247325444495953629191007731324753141447898262490787555957222419520800101307693239974792525436794775928349965031814850930715671862964112600168592157268513357419480639260503033885689875521305056967821459991891015363191307946746452503429209708482180784509134893353413694271701798478451148454041689566796187560312069723329894177678353642315300937116741379674979581081654865194489122683305100118932946639491524858396654660174769440561573078370080303552883186967786083271876696440109220060388450434538209910199133021513592795567975879065420791953647143035833377068297102723344611263174667636321513781996968697035366125125580898080548778365099063171213175651548707124255892186278877355186664970205840698877370824911125736776224274212792269714640363121365855918581837904632592429828355148253144567260226613330447247472780869419427314815990126168995773650041137762192111855911347798093676481857571859250376080943946708338017050684596286059736221504347676307548868362679323441738187028391247811354209963658154378118562877632357971880196998181883531753722122451767908013147584601453348387632009724899399080092391104071048970220368920248448914598482024907955735358083613645874143033859114954464005221642675039503698887623501177729038085460523207619221943778863976229010810648283805010550846890424728928160785733468567754753726485478484783240568787395739833933359295335064051941147375255643065317847964078322084177006314003520400310388964913342159530529854269137471803399536560482249967014783060754634595167057812231420641374468036379659456264733052375484001087911860569749438341460389152995494544635100308050669714129876322820573415791660004310444653554466533292094258188701492970554538947901592353556237346645879647145661269277497326239278490584408877246386703036736545434600220911963137086552582173337541888555070072489867226168744897457098666647587161759165153075866082617374179545740156895162268953648011824543337931405440385574282577495089252265365112892222148800861926853143500121972975083746559394991256238283101001357540986217067305389328083755491787937191872377738015408890210431776920080941467703374583047549109634921896024626419666843708823789675942054404574543214197036549403785760819387401354895370716808270801391090145572154882497922108661641584040090131473786247544265549840891660081536986461692199738760629189865963305313395284994306036661073485664914718813709440978321159839577184233303237253631626475250099699597164091952326622613824329540267401932150269334742147397465924078374415156211982173776742577684690850239684555158627644339287342615199276603866926984353798260654302320945996942456284428405634188971443060739309625588254538251787488734867088796283417345444540241592647647504996564878414437130775218518727240073745679115521533515297651924500598114178020946894588092077776202769335948931330161266460540612450926857561188891444605824947968028172999814845672751558810519950576779719424303504658572782161935509582222715629741547208253171190944473076661131723031516341284048637939338125771876975895244840294852103112893231270322806661797749456488457917148980513870490276817982587220442081215302999957389280411495315662158216754656397298189740967694069550132233164236257129247533846134775078923012266872031935274226776417566128489852100020329354902702739930914103201669048788787542209310053781388811870436481508763509115286680053525808733428483818671061357563574108452517983057113863588665029313687783800883876364021569820938755237734918867388949087569153966034433911710211520424163747968915141716867315677067775111958622717507971164947239609818964390312493387730266749646927559734707226148927988492582775480483059592161270495201887370835174101512189538362901357280518221423854497793064605671719583387217865357944456369012485998047751478319591962658973145064627344513321289200980808428515234794474508167948724022526923984114102307292676268478826504340501035382705445589786517658478078797130613516163180241898861954804385071886465259584561429306758248903149897797056724950359159433732490697863107586443452925364697023121415013557225602243791039876514518678287952977204583796447123579068915725714764791540028628460128509510399405907061534274269456164823353356262393762047436296847572844507288687227993464867362778764451591248060629263093693999755433651963821449383986606603075290129438312150143566861407962302426699637975456568608343300166002761575256672457798963205040941413602342833623808870393672851936144679556712086945397511177765304514124849279313780955675985736221955702947891063464618524036455515371459016639284011185019724403237424550137855071658874987644478622783651066441757225971279452895232287715349712986069683953219917588059712829564350892714408268739337183432095115021908939899143649912272655275508570969161356571378922055092441043108531405451382131415522881045220394894613433633853506711799732242225860260552140627317394820037608675380985860821319687853734389491402875953926427035043196943035070652464938547770532218902607265499561949930967766385605102024085218258285320598844077654722536474085470343444627255216018359750995809112186244130206164395809970191091611842385678662604595913585623974959424190675660756584283260973279939452776833682338124173723244617644817678532113798658052203283857481577850209308914504170004447124330411304109510133162231588289099717327512853480102392879628591037342383466273633262860611318753756039041613686668975732446594300504117928600739687446365667811003400017214841832728824490668839603826783323525200426525458079651885074466770235686749278095460772169558218648816970852494269619013546812405733536260214697867280308216406287289184602962233307270235618324398368094488619718847845058690125712663820793641574131750545860412443297489739782355054195088050238072386713130092828502230152351465259471498606351790798983674611830690289756078211149727425479191281436833060261613243942601697919877462030568280671283813889242368704366831251591127597108621223052254609877327049765213512215056374761956631150055342778529208039138920506663379749480614589727776667123997278595115091249270111197791100989747134342513092561182467719312279598901862368475472935252705190405207477605677785212046228164072258109682072876386145476423275004790720161912535593114247377149890077853506466623833627981586828728215453648230542627621776231601105547101391737500943396263922031707311635325909979229296077030442150363847296933266350404103232210132382842316761129194132532324363241277279853356369882501842005041399108361336383231610719313066663469057653865382661664887731697955196799434914527093037270718688832390127350443667373952093401868801348334852081057322758276956416102392025277932777186116649305414445206866678435638628301735688209491392634828672511672736014945633506373062371396910038125158253247988015799689973135791879428474145862805600357770533040943742176655916280441891266073814506033689422724161832685396710413491770093200791159149796405710253048025294342949990138384070278521727404490686125311139304478323399010308453405218617006593053246874854128702930825914724363423989285089505349375940866438138209002785563414421015206358157317133123292093712302437246995380802773475774738179931287213482639878552345466577291932618758696214467372242788069936485708681838094572623777719721562630771574523286129977212426133695850885274601618408431200448032888757881773497416150966033508081018901537492980426631839596129604194576785883476170332569493073985733196021587680371279239560724600099581360867329524964001198426570492955449723025081679693227710077504487507987487707525772455974234322276328187525555261160979171945434490482231134872211547783595332163152093896375685281233433013384384365054504335082475213718186006688940508251018064690840775171351113610544496564692559196777904773286395880598134601316260750552209851360821516761906285201258903191949661323177492712967434152246377771334061945949819759865169599030884011221747521739955956829630464210535862234413695552288759887524116326696970129587697029502679929325927935193462243361456003874304831209628883463470575686338992793684445291629019060341564586107030984622221517196663714870031550062627584896142217537661939625807848662576968070788728847789513265692114573012814356546960221309477602845662813535463084791865859969056984196946759702035204506166374557878131069376616481959387671725292032127522155719932960359637434551710748589995950477496343988977537695524289988237207107085651850471631686249064309034457497681686416132787888688382371721967766581842983308169529125014949525488831295828830806952525466667225990402213079394850310103978012986496597288640482940877300342963441632588012666978963055783842461305778424913416637645427086590653557998388141464043518187402394640914559158663220434474316188562258931339529471625914183530751307691263571593306252992858239850537786513383128110246692742305532073594682123757135038078541391664085672319934853176312665722683304431295388593691054437175779011549333280260307407354443177853194771139424067899770006459859396040591039686940783058044010626379353505724678426199002998023216239058685483158178081196901658359529628733653758311695498936729140675617411697324038580159926514804564381272770218162487001650207732248667568774984526978908320096752292429709096957244473049577684614732673978257790874193883924212566674336877310524899546325722678835250210116888590738317373024076836123821902829083788747436414949312551004013648458835004471571004406694208552501976710638903948456527749501917946350797088244119676885058609464504710696714474871333481592450073135373018868044041000678530959050546008854682073881606993634744722597885950542314191082090126858744986687226392945104796356236619833513456449280787971045982433610847458894757024126414343292252170661126664178380895832680346563393051199477456850715577030748944757751237604405735364686982854948562885257419066063292816709288003765960496534441704341482647199184192230988939939796145698040871620027818689775114286020008238008171790752206886170683503150152566253180271484989012904974831414310197957255692899515900572492949345190033535562891295958558969661521385812003901666091986508468345077800754201123582678494843813605079854648668391066527047997661797409316600593949670731631585951807458167888177472101889979600713281108384500292743950967021086249346199866171835608562276655937771810993254099222571176955924153629895285023880940478617381949976946297544950596697198524310015254366059628745652747645574381914804156781826975355037410954818605885140501708766663919114230236688189637958882562211578693887229885198688670684286746302059604826524101375601770454908206904346497601995440188093174779236318247235527451128844153461646106351199114427969601452156073457676473140667398828030599060559883444039084710082254745948022265658815875790002538531343137775275354444662909408366409581363163582321229073141728280952679751736168222823563990392530008373545172842629633698533320258942300096595554923754775373124343173452565781305180157859247293820299640157924527013528269084356029633917941644282212568312123053837104113454621282573130018220781331276421976209386401986234427940394967999719455780238172690183016441951708523635765480698450785977854291392902699697770632243164097479655892006238895045149229830932779949490330489018964079419897074477210279456177523436668277692270216916115669676056827883023833016197886468240229708054430418781201637412685667664227433774219698709866567369532663885871870316270956083977795193728492900013681715306416706400529995658349130723428011044779374355058611728306657644408188729745724608414845172530219866018292570999386822783288750731503701066809023615759913598071204734454484503383091598773444524632753716830613902766095824344765534328047204045727219590771260992830261467149864877881786532894358175552602548153178890108406674296925390735472991591896188106374379647775306373755758838017717980695540793459956595802259017458075801683870768215733698023002542702455767695850445672637014575273287882794298913996154678554661023538465232870469682559988409166278534729956713787291224180835447023366046821882826626700991810362482960578293635970172717685739614205788221474872191633566012083645093760619968244742732503020695466069547043195978565279744561412268259098142352757763637085522656481945914397171066845668120863402631209434841952045700710402140046981902372144520697387445340397841852419934517187344214774730820146133871147491568043109333653185093863859931958842309750721285543599696555502354618992642831948858831270342102946647966847093295205724827890463976712085301296333745985131979462551840148668462535437142587503229696288134693690425635266178141940739224917374275188666475516083593709419821274671941015227336902607842930219283854425700234823826409452838962929972582381401303045044614001715519315650973639464347070462121146779074877183633863373289893341644037761945718056967740124289778173455374899575598853335903855116057881681974059947405460587186920122352432671861708900813960507343337075574003041446688470641636643313246766358194485496470474657504327286527501098395829017566243456718865337745450755792152510052731248391446961738123441116030592063622263252863852674572255814428585148684963284605878391885311964085972042363622224294551489018108716973918378823286515044438136518485463357071597137347382499155722545995914514352527445309282348470580249133704690136733034012899249101920669424678659500115068815729330907885675983096303750709551027669916365187166588690679181335324712964190258946718919392482103816584589977265162407577505675033008453855473722840108434353923507969354557035479417570327597542705406244892453503615912971907426803451601826853924686120139400195037237398850948705625257809264394421237403352447507149490450653762015849325920998717852423444892719323163318394258839567221376589975538361638936321708534307761835073322381218512694369343886164972597495723474362439954866366021870000819347753236066383835668567353650728342937168850055440805243739456220499355347051528107221019474260900782420266859781423213221708571469478999013894586487964906538594675280211593970226508321341061272219485154761209547308594661139558409299934417788335953006645924508738078575961373655105300213966289106754628083767800389691927580744959525050589494290316186413668293503718572870741127625586821787117257743400639278541289365209211022657188473866558583260019741187853897153408507579619577168321876443766228819666178174247586877655119958382005023545971213353102090320462011909186130170239863173644218158054483962823819081552045491113090989460361386499428953670156637739265653220881386101024743565944294437764545877122018906318259535289287382923160784749260400784729486927501442152566551988922313548331869063000475378081941880697785924501804725183491112453348390558369477713209745710093833417451014139870855951450122672057804732581809100444634672483269064242426932110535673294431264620652374075706241007516137806188404910648335165100937722722381900405424378842639527626318755308280198163411558766729500626361318737398284752525438641428389735402456811954787863655461360245684416608635303210116475028218899775594979049691902830924456302762271030861320419042067539095031241231029948281145696912862869322714758452006586769816625380148688933282898124274473680708087748130536127578881122387610482526140807316163185359934135312992930602896851526515345558864660857886327243412641532845143927193100419287462766430665185078053724815174390664751294867004037427544874940351729000456569367585702579144186819257461373274529196255301057833402301193885914630885518699498095940575954373099810646503352101665545584953941759369694634783422900696735251081110225745663601431263284464302021382773630056521994838887091598192896815222971744206325472015346944071589569450473924791616550990769526835056399874452586552663402521756489989209549174826701134755779201346883791693497827107833530485007152652166110330829457659989792964187281109935784457813890297553627552891549071244091570030384314809755604523348578482961744721432642132018037404120731260922565358443262018774459810341651916411963004364786085745766614468474214956186219163585317854631643669696565165475946912642710639991268951717045040618969492831901810406997835165301799882416349686327740602686526901704855019843580794309489058052168906448290476986842662600146577692696291106561305659782047373796231168881373952769555218640937242351120740923248939628462915614955306962072638161740449553062774209829841783886096638661268987997584648570003960331130181060605863742864702809694895982953705297575155252211498176450987843751025114344576695177580721526652290220975747259740312937302433315395572652819227280527210855961756247489757518686228351434744696485840621579936887054502563352214334176437209951681614690472386359166006389940268602702936852454437597414432185243774417858812658447779135551684396296010963267607209522324731408932802536734867399653888601330436574851689845798763951475539730870352811596807334641147244954912906985305023889450510180669316969659577186521115667765583667074763259347221166477974132800167418447655186229795906529354441315030584323667024905240998006153754450545628163252194247650342995092907253928368797908854933193483063217218288647139128074950679215595340829406485022258289257016023341924647118777158786267598562023477108241160423510797731201533834539596217565202322956711447802378476009025247432621460816014217507980297340139077224320579167265825563369534436340366453184820010374666666775242831310743571356125217333216903295504069518050011772339858374889172384678550709702355396735989926250016315894170241627959901876181293720166708043873942957127663090871401237319071674870779228920741580095413712019013475832816947233848008216686107764369308871620560990351067506394083734908693713488660945961981532182507348418631539682965003013137914302335511331462592009422590008801361043948040809445014844243965911284157395813962788163203090832294564456825806242683384668372080288967720777352381324874005349452071452474561587378392207642866756681439369297769204379851710021500513759663212459642430847578389760815216710554210336476658192602211233597227390666549427872756611363447631074290586915028037729264919018954517806358143781849039868020917678394741251114071917045906776095192997141307076215896555149816359119770698910585713694709008131327740010930744264115026067054849848275845649187361652338684692478856288997614357161495245327257677570939773970481249204354654562188288183745195900398467815367007416550507018808247080862081959025742248463848283717968990671892141838942593767901037394698110389853267927721129395370176957909638367848555003144261930492868469109204697337095350169114744133404542824592789237875914268527848811826964679701093331419290862949056080702557432700795819929049691952559320942296627570475798041764089661285040822360887970917800071953337773914748996130331277292418607641281258723313121722008688403452006029805981837008301870492418703705213868908848480989846614197178816135804061344815510625468930836715367447813071199432886373140237925593505797177459984361309869772452806745118005964941460091163152064316261894121296194311753573580690897074309567018183484957331049863705915020919925659416958132566776066473532908675530911896996942924809871790967508645307907338656322219564485537842923922525891867824227611736472728312221002392509613343971494680636403494787801548677170546749299606480547771767555955022545630881281509756081488683087409350449663990719531415912012119165083979536545122214882422755151296076040138238939418773826864782281029139914165562841605167759236122930723192980588454653395896773835154391338722168993950335778100048797030630730358892759372718590850828047437569262110476469596345249273931209133585075930031050651806227363871188522223419006389081612410238209045007767892532362184993011517474930000260642705157154690803427012902694362869628187434857789874440941294092172064940547798652978777125990703832670354509914476956190745726124323770542589576126167328537783800543882841477905639266166129119112679434060615806882461321354638893201854734993268973330626088103013130094506698576516822441832493254823400781792555315822316055016228399458816147339287169909143436085787706212595954072666223978138533466176736253903888445853365001985269918572163762041293769059119722947439905321804739926491307781620632046919256103445759230550999206682271440926991101236523891004377639553985909943825121948828853990316728035446207167633043439424516950507762409872808631456693368655086672023690116379554515733184058636091197282334844907767208689093750366004988456148076141244022535677926115139755095280712410084802109130056343862521318997573726688405508183105723851200096500340516028636740172615334678423048416748259117296443903665571265240401771232933441593980337796210698085525133911393999174060647821082369624288222093459231087598822703827266232222753887161900780869402489963704682352240663004355402407441523699259215811153570726866290522352582638920206992254777559125935829423403114796146766678977848208920101891701636744858435329410604880807320863780288303312219656377797139118742103697921282541763548812892608990363930218442318304955364774009254954206866087390308371750783166144706473899518843271844226105338663894922096842519318680716267115370682700566202737614986063979566795209035205408092953463358536550308842622320410010804197172004900820854950451035205485335509979742073019022683191689452601154903256515296829922916945744308635956917272420196804204744931483394261686562969858346245029483603932542514319400041946116722736848519581367792044662463801077998371070549370592492692364228234662987186712160593442084138970507153094527515263455840400237375854247485225294383304850675351060043825372733295234250733580340865171907347610364498568214274488078526411960768774357364477901719494170536191435596927198385587619097438910015152499012883979769100635941253723443396745361819852083047306676954541989847350479403322096564523843563017173584264889969902064005172435864665008034041294948303657030344342367456575120438789388830061859867945492449531629974147290479783546913310912402077268038353914716482103539955221883480892091107209109997573511194044181717272667551285869571169187316970538298082689344379778070302964562389832969698580293226521715952629909229225135733160475350374136538255327071434154212921791043227937900622140613843883327221603189402754611221759414940188951348433900291824189847799991155216484517763982746303024340583720893163837517904215972211593529506988523044547335842467281882845892973120849344299149590345835654232990067852574119658455749864808067326950382155666478440784519439166119081465703364235273593091056780440386133625214805615171244366287724175768426664653900371632272472451012918461377142900242454745154191596076345158983294250499428119245313330360754843198060444243343420235317771771967905639013880061037291977328082817517383768342712920308870966216559247827378486537389300565582606756892903164395348831037818961730865852261880866047196592945412819848736330023391944568408579581934115919200104810105397023976516305792280185567053200887237990071093642199118878872183824604529083081690194555296743961472888905689190523762903429130796430688470830391552317016895660144270554128646329903888291257442951491070421841272171132790372219985699323656105886461637869432109024595101284352855979065280813115704648594483687693241258133772158938261192206595490417494859061204838751502583434850315101831890011867436697738508886572937808999324303928360707465521599112380146234122104579218640964583289610508864362904731839128270593858240738151462429000577770035389262288097849268877344003590869216372479025359035084971436429165062082427785117165772015958530717856163445060674026748152252843255586648716920365358996651143882552069575888069026046070530919197412267651547476636063461186228136366686318426398561380621736547228665462221204268793038461280112395973325413951260974978951643266476066558305259336666149903881689053539740890961465403189254365612830620866080350646031619705497697998630595878853892524564691854414543473563210934756779630655809257132244941099640117350831263117758378404619728687922257328959303871036459986527298985691210305106294105144589017549517524229288557201802508524745290745048544330236790028092230156537201920394361415557110363974857982643730827070646443681869253840562663574359006451744895180811785161321824395135672213998848581666368519166465988376881757499449393215280848734773808151139462424074533093020139345308965081323388237153869413329980365817858841804765223387546766883286528338398556440488342454968087945550606222673590617315955412406333662291442834521560733846664520732446341224716304191932385655366535174055648516065406853365148794946750859092325987745553612921802513520029565763254239916570017191270625457103341744438082438832828080069739360449553407497310380726494859977709021273057439090139045783116420800227375131277543969504920575951003484192025920866606258512034944111813842315089988224471763899592827303277071461850783039047093773739324061044733816201689953808972007502960696538173447848358556132801925054099346896697798796384786094036272618713262784218428731773163426858967234572983389990009714148579960045467853316364815358773549490026961481785632107497076522939352574882960393644619193709710006634291199571924119632304308656068053277042856936662118337134237712439150438628225022739208361086478593211856680532881252133230588509206700201541856899952418556004700233058559147230453402980292506496487429892728439291342560602111519359398448377143666240189929430343825663575999653911175324255446069572863735035260062259363294337172461567881402215995962262449828208321660656310493121986550103872308125650142003195699421922652749459235154636428604229350617950441568803626554109491178151879888532381402250045155899392738020305394559727733588052363435916677260114539847889622925391667488324177421186411225223202941204324204562341979327530158211584833036015060830368279168524127669488284817528841057026146726410935454692455660609427525735702676052480512678750591196682581531868685678242318832236110750790025624061565539522828415913715675517179415091260857836863608086484027876587385634802786829918377935123360835340392001976062636788394889443056823864398870802625523026773909786894029580797603724666920006093553775822633274556937924548006207749658644845752205794789280669206639391659482836201379480798603189264820180172469506918108895252467253192127197349546084090259023712345123981948029300134105139048683724442544208094692909826262430461493545628861191419935028458180448314277361584533838541586175568879824197890055791106619234616359570479570450630015267055358775340968780588721011397920295773687634339312137429614317529279848765866316465849337572946142795379476347207914310711889197594365911611629933487727791738498003515703998652607677041889223364960010114183824663811629749114015315343804259439464185716525481466568373086047574243780817997518691810910259875909196595275081079822478023169799674552272609784226655054472398512841863833446065867114888172411809095944943723196759369039544801443460774537186915472297020522423705851822972390093996430279436097953782848878068257502634772437038051752862234318782232279716982069563519042885379810678332730200406794635542682139751072589425733798428603487549810272387590442306959932534629573367740840262329913847883489263087947645194351761261097591355664920552974471678175054111673522041832958695002057888745457692610973478152097828604324351340344303499393138727156436809026442290183665188875269039866765422309374472274521770392136204995978787967752649465976026953509248960226487961786267749806199519252780490423035748752732334196774903721956065661644563226682649495112454241162179115032040480125371062391162304656325707172562771171427853137392057708375165225458870331055119820996437854982106303208134558625306912537644320413529256334208808531653128614691734031409906567546308971190428066785813439114693303980090682219861037745738688266659647798840366949326021726756936734955598468160622550512542427064033646568693002491142142252947878581022376461641551862329305503552523576297972828072504298056787904778003282418413912172055878941567047567744375905570805560250605841513997337696126726092517409409522729249758495006939608444808673168507135207169161223416521593460525424295450909393281550847152479096667435478702713413702928647397116504461968738324692420949491588341270259591604089043337685487651641640007984074180477190009758636299176406254802932932668579020077442681985464874194924711485762061829395512542921515455843004543452628464755237854791702516563636074775610287007191400121843084924188192585968534638296770739039908119611959461690652185325026601069772329697984535803518797821004603218192223016844680879030905463303572325204487667218061735523686488374635947381889339347851995578479502904025581811410867992249095631328008535425052249927493879873535534084699733245407311609508782510807287218319370195630689870484364397803140040703282169511103016723844905330188170992370009966813194952346431502661680653674685303504502928170668273695222353812116757764586342477041885820826732032878345272080647331832758748606357608980155947551863388338819804878491090806477873461759316571531211229359696346811602419209192311187450358671862900250737024492016781353323636638247071817247538272218867544620354356248975925754067635053560843686871230458276830219658377894715942543915351835030003630581359720977665068231920923863671750298979226380564215407497389296996382486600045063790615516931269339512325490385696714168573667369869955118637838813073207452473102310142438592004622959217343340707408367661101009618956159244894857999966421323849320594599801122621293451464314382849880360695507624245181303884281688291188134195623610088882488674618995879964314018900050129395766385994156754579001018348380874637136218891935406161665403406222302224662120959807278885677242266056721123232858846652874946882460651994926741053053922794722296613770415693465687728144786000088186252286625139086466342227087251293942867114523739687745589458693785525769586430211548087837003945897747009193528556216071760323625227064151344075166999971960857907087108672609736167672589087259202777714277909859361752382230583266081109577951363203302877952278301800122726949220590022030812704207988023508750795234821397004062619359093680252147959450757379996081616556230518449108166626322824899377847099002491041900052389713221158904627699922265782995717877910269499034609240655613195678100507976813875870544663602944773022675017548139523297786773683904307557373286131279737816934678952654058195739615516391416437374837364578015993954077460857127761300002695087034345821890053387871713061379509211274966611751981150429969866169527891014248432184847419696229533894681277442878111377561290379236324566942548969222983263901974014118519085158032827439362868390688902078942409835316386257858364073982248203856160675418135120673744087706729448741970192907381311961081066336955724068961863469780742665305998572415095097608474370413820290313792214360956652479351948608946603899051177365208135033555409373745993756015609556791966290966209235091280754421568780963873386671234533387976986989904633399930846322550985375641806613956443451806973215348568834788401509590422253747326483457984987440819197756510412926963760183412324841350544334265379354018529320151983341435082092270935419411093213916488372749709742506410026369940412139853606250566812354111093891065466506730742781017311278391981205400438367208526210955087929137110234690668283917990738809365568906876843868496706393910067309230271855311791130331592535492017086872352901849489585162261334661964485355747852610270355680298766026290972922900343282109040734985498084848734375903571760092270975499744448215122564547163217283182460111402287520477774533484996873717025763085630723936406525391223389606481059323675182500265202104140614871613208710892660964692305736578866228719560514385354021759049544860204914436246714112082500333998573266391368408912876964425672923963060181670042940644962998996903395653114437929342218854972151517924617541437359975844898761254269855339369404852516750364477721708976252984592863413955841045924284860691716687008286503459412246977803642355684154974050947593951102152739596944475525507707619906589157054329945454984057665039727956977004590425242926217147410523924769415039513330088038150376639935496979191332956087865981857609896555870600345249808694807641878946326859543254956277696449738111850800005487225418460851595845524158044833067517156789239396427701314398746088942965469092945900754004165709081175132147953948595497628940352297002543181692638191354661973416342579872551860986509617071832125630511213315331670069252036571211036606638467403018386705229936379181532302168650270578727755501418450075201210326264134739954606854289287715876564987966064563356484826528962102463445742227021535387418859294019559810365590251474825833616936085482518724410464970064717125779267523710074175352782115484727358013299457465173126550735321876991740484907530996895340145721067139622170061907011937979390774025985911651542642600468399802963570748389113276151473772222425461504364989917868715141178418931927927884076863741002317239464558723603462217427484454735748543565441289479851689169295320210623156920410436972240410617151101387831365878910007872731416684664940090823777436502256946199669900425312740654996384512170772876354992748874558433680898282402564421331197890449657865004743557647767260323556886484748663907372822130922249156590315776540513678974093508324587063327584471951966085170004842880553846802047687142718016767166141867393126664593001547855488353075802855744253703862197691900501011712197992449326907620933565036032849499626780958010894977086718204546357506247550098239875463460127934698253029407501574917928109797687560871146722643394573417155751141135461046871979915334828490084911157397294310906218194530003278518166590449040029959827349724255703904174427270400822779143226219818028430930592240450484906128602949502833496259752229678799039686900941443184520222975933854773883441844877246357990554796586513599005722660423849515179818633070711735157719055556817434874630280801029980114334394814904718604386445231482580831311472215369265072711501562206667514816598474857792342502649422229062003424643025398595879165114937042969163970932352906756210527830923748869500491562084937564900940607298485386188402482201597459985776384859918466356762334703409942073316896026218719353008667602303461420554513867440097335383380093262444835852452804621058399780508402373346545662737398210080440536919386622425979573768261248619540491382298882004667260069866348198623716375800985379718866914181884683611838249562461984787370526869932683746223894479269856731621248128312663517150346961235062312744699298530246111083340011606292376099415069080812109063229448246432393263197680093536200765809722458167608469336601111697573214815172867339602402407495449449398317317230513281723253772493046980368661650452699136681600405407155061424922534951247901249390943843288671700186579524700181557004807441093805431713636723074025457877788471482470064735975036642644344669710057461410481631902172121277186004396687384756577138390866482313013981261323056397002909933857452916799514412994167206998119789350153263090416400486332373315046828290481454466271361701192723455893745497655112462294841260030818901625995299271787952127572623123438721172847710316665570767761812146075198481490477127881474957051974722815657280358616889811860627557863645855827085307354586495972079929456773560754744912051419160320376600874061551591775596947139546939732945415293523324431131833334803018304006498431969182093329029682416148059385032109387753687011026363074559578790774085750590448038628200671833933497375012385199052794309306632369027601833174722158381290923398785159831776430729394360064507465420997597925357004081653696371257226556135782792495848194857666508850050727452769245050395323075883027834488456514316643097292505291094545769003106131798731675198895788421951730095522755561087843674766819722987549372654699092076532515655085728422859785194516834981613997666950519622051884124845982832536225037363633394594772997215082697232458205614071226707531491494476436570111898509305364926422786597496343739094717939640493746913915024040794075153480601863503208880432815525621318295756883209333439016726758658233984187501876666577832929376573568998479642514468370611899008768856677631819655591992449280137871108864131120501429750968212326543318119001417524302733053332535831191124350912939382755056037060989608215113761934576936513442027037780739788219019359230864472169999422986448617585635137637313022522805753923367079278725656711930178611898422447390250788573445826071409319763326562762032202738293181835363616304258146646579456127547368607363269893928733776750966144653056986731779930515212234305041772637768188007037096576521743859281042034859494072909610460786034232926178989758919359047784673284919315523953744966960493457461556958549052191673108021600855030731815643043361140105675608934451861455675530830246574533842321880359317471919853631057597448895880327768868033398469783887110472846971082866903282229874691038514654279249254208992859354063979020611176385821872314626842812635096203642027002142604475388092812334533785859947476615444319507715582259843020331610184523766893805904853213127214375307521692989197066639038066934982527642789873475828967185357194261143795664690621128331703311780354621880814161752617784096394202613126714130148797326109959437039184750144965811559121198647777742250263364714791905641531944032800676051777291039801244434875460789401482153160980164156260581155933833257373324129583316300845053882101986040178360237534463667565959388292027093369374137865048691154196419723609353548043311409750652236296323560739602362629909511767224341882628321529335426188606161489776127485825003488547535017541685039439517283970409074947380794213278836383509930857439629635777040492948645867826237313411842305355106153011044465764078374494014403614134060598578359754499218062447556234370911186399519320187681950449707293918866528519826342874848139469846495792952095798205632926889614012205323001380523914181016110732780253534461185584925836434401781789891533164139446144185024585601561496660339926987295239071060209194898779068477633979572266072198394859957372588365961010303257536084641359467738741565977321347511100722340761182150694010175447161261509684075705864931336060014664261770452132761181547365928923280151223868056453638429190241318627353614337595041806956905018449759206398662639186025592937390702228500219623380769542772189110299779767919529669296924797239457866317449834804263059426198463949396724489020387829615481256277444214119166217854835860664806188573449036643561447019742924173977091666108797548946458076276377876834380274762122327637754845157420404273505589497100834013616441090865948713908467518494219927253193517849207535330151752499687045351852967015435250908352095936599760446211456885882543354717076209702795506940252933449566043357142307416728369226669872868134067899279498120006140568095950615306470971313217184907974549915323366038435582267960619568095666137168640597207219299112026518385736045688930223058221201366791236674574013784524607009377254224630932026988352317374335417628983252057951115055817324800730795572959590957539433236124856482360740079382307248276699947401731679228290230257365801273529791431777184474474075375504741296439435217154167616853366160487159671909568116096001907181017261584343856127854645859892726184826732372202350461537497848348572829733073400940086878821351134905799863891924644404499156831786099529365817386921046742307269409828844761075434784969672874280653508174235879112197154958645685264645267603548825114875251870531604464885925354854193840938806202176920280036273120688012238863198447695769341082133603856335433564373386908741381847801699805847328564631576086594848583793774437144752169554085159459313620954052083268085293857347108729161503252994389930064282584224486449956382606682326792713209639318562827696522639162648205602424924159941672385713219756534715298963227226436378853655761695287527374754881570248632334421028610299666057628314623973967241758436416236377952231164614242465955862357407448852864861011775028420718700837875985317126499865082752735453789959212510746320063996163342032215469376492225313044598923354454678232144871937030009692445811965838437011011133034361338060250954606817755532036870270616797982654762354389726025987988110360869257122403597614152264197512583118569106217499271933215108632664937836360274674142050937572888173902396959341578341320892115718018932633091870430859866124610858795786741783092653389084309325708037116615324523235113190934078469777847601880246222959773193623235100559346450498298252954975941844813197214741480917928121452627972141206273625598991242389551232235658659668022650217563008809562262880207494637635332799588103616515040065017149395631509759988322685776512274643608377390781479256563219977207775167958793853146007124432653093606206190946899281700865541385417276658979924351740878947560998599012508494963442097308863250009944959027714984484811456968788491789643991176221310316017394869084402717007354767576085946961097335165528435872215154634209793369686504992787076818419885386779377216557145853119460014599090561036816877573460611185300223209050292070872028903876033210430133151332342393157498040783236437773225317938605203806048042043374069322883549306324335807756089938865891070541794594751620163169943593421469361745488046072743738102785995516401982204795792534359162329808930431402320314091742718572693468966072229104391256238475338376030686717975156569121639156984374112352130866087461116975461786499561012959652179412935959480854964624913914982679592539194195733025218364808436628742632865603944856696818890240797000839226375405801084837856023929941706359714087444041293955926643478757763762880016240706627674103581359300980760916511100729955037255416362145284046389765740747929942467728288960336183306068579464433745708471283266300882709512892644670731890284252886067996193858458658614234624411065057086748801740929097842521707957687581219133202616249196571621715020112387418064836533000362276782223790561972156264569412949132154653802468975586199069455606409694675815364596152900342016064441261654714424666838135124847582923246861676560837424459716059165318645855598434731434739809877251469657711086092983891253551470957930361339296703370560912259124157132974421677660137988814933769844759697083576998833889573908369059735003492751164383835677941994419662625988050194092950488177168828261568767879408074028084870377049564939540365903180771849333819512555553613242251959416553854597511751642757708847435682993742139422566764550074478591020546751245134771290917423484274689051331216708918039122464573493711384338869855304047912750434303549983286040260835558062682734758796265716122135313274058714176953568248699528899973608820439304757180198827411193836423848381038994493334965970046958805801094454754138462993388805605384622883454737516081655428327138044501846416689779834287640194225835178180741848348547334845196103821342213989240483944991924814190669166345618382487739378621767160946678820282381690914019079928765420937193671912771156715304055428690667789515139194694877081520824202276005085695425613117467707990543399802217664862230133654421474157082260915548264100401817638691849611780138823933158491482862745940486746100896053021454859459446872570775373175383484501968237039372671602922043491666742674932340615056915142836066142611932903125575039284471884233310279356586236533244070375948444501789199262816644882160485990492206705578113586389699597723122147070291795906332822739434189259933223784611811414045428020712713297615451469544468282979862134823200689649985168526938601819693250524892155802237557012213645979040949654849393723670771478004159270706854535627071670517871855595933697585460488656642056074464098018229268735808658610357787495655622018928889232054578790623607067362866444573440723799927545558030380919079221062524200378229363862772543061191178855622629647173614149838872591557280859469067331234107696798671490115467466715870433554138374116283913347838544149162320242124541410910887903725550286406083796615715034501268777164044935370333320768389203598425037412846363279218229234248646984798945612564216715444391284672164660873310672604526756980091919406047814880775493871415200284357346768203065455751901978539862516551782124837077564223934361334683198635349312869887774022829441514460627308286144666017576541194811553797756979525610015635804593494187067992900311226014912834260827163623725308335930351557995649670594246471924602742627172072065303425711086173971640107822772605739987713376355094615320141386575490603852678135353460752520233489361437920143498429257451744584010743040530767068068093910759069724852255455579569408901991032399281619010660160491242981559754947215153763202817548547917070994555779357460382603541644670774690671777950577135674499792329407748529490296918768032239190274490153752792862818769799960474047882801938266424224945342263259314770143738684824540241287650489329245643466836139397739894794403046550633079108048813413516658015245763977446084468432700105721401317424051476385409386552724219465181054641200755003464166733886335584847322223354284605897429621869032998653790739539505175457319020342116343485762607467807468868552397390996870761002689801210120592597108678568788166034555459049202553828068246536066880294478620819127559602382670256157271160803303596867658400477715578254711910552632877893743967521331264306349749139282812877332886848883896444332246950400662834461147018976674144127765929791080708061370931851264080574855893718522444055138727430387147137596588488669436155230275119541076652756872503909959343691364077852362106267119073528397618698567303058343608379334385489023417023362296931041928907545793467630885006074704463608957651340373784962342820186853483037728002215622867092569306206969868084504681039066390882621975906332355898093528430861469435969484485293330509208552978431810912401095965936248988401953799015323127176739470036440488695236463215189773175569709953079334343250447598994638421692005643935978051016497104631528664787498727867364501432818131089239344627195072175178078706912276983591346086135241430015671282097741155025190257589418506156869909281275679516486703472885619727812786440121399710780796808262952992810186867327916477480396854342329655762479047074562748159209339044064856181630666315809986127349515366876841221764585177590528759785170784299486087944024883024023763744108167290648467161222547973068425566829568267532595145863157439202610198053546632706992633388454661652188048522289511239052732213956512059832165634745124672638656064471305976642840471138065399375466325610960320036571343822243073647064338439605634175596765563320092893992314414777575693983880726513262621184761300588912378493413653458011846489751326670171429006693813440416312647946576812123442635517477381376169190834161248634420016712791147926122366372863376279185854423588889291685209379870896691353818423883090683355044149456575477923944821601358288023603734190305574259943335577369096507546962230912537871869209003766917662704709762172125447712278868011440503742398462217388659102603691231261424215035495216288172244632405860472125362555271911511447150617812709426246629789528486805188765779180386610546583486954518876678968877485045183541122814436804087489693494407547109269508807362428016212469904164022310475533859701363456586229864978432903410041448914973483830278688050032919663848309763479655406855639486939051816178688270756524794754401926764654532096418870878070392507940003353450246819297146236968385657566676170237393536511153562641932385745725702748369059836342924201868936362772511237414667809768959403808221088636879566883601098916454269366207874316710892930091746002938231145987822103579701119229920351251451136697850866856854243325770284727446407388270472538603064879792991500916247002221303814711273795282580978537972096924570812446108935696670666471106991551985134215225961982681267445716830080817826853848382103297863562976432929654930415742570003432779363849932756301943318013422766424836902497406300386133098878883224282930947715725913081805940917980620100067527843021441580549210919863967628463298798183545140611491755624652338768949325170824865868825531935532256659871083217819007116759109156984173062313318023737570655207252527697166710190340914536812851445185137316382549330381704355467509615238921627674810570890479982673883570140607162136003086466478244997810038279582801151031220261584717244594789160906711977074177864012295937667170830783778163044196211487206201817764043765934345101149698301718475364324672473095497348087359314981808030567816721156770766316123213760899884263282567506585349753723228648439118001590416021791866756678085474912164812419122047317014218755881253286327692886420400542436768349318013846022907809328967763739272871074468110406519907637249553529285312736055557842825783162078594027417632098870693167467635693099747359691018742286744383099941982665930566394909957596098399735237837073052728909096744402010846171309108362688251678059594380125678398826881379861579486965937129519184382215765911224426479200957326264712325769178874421428549657563487420108383553586046582559868654525420396005367778278494183220205101193659567971828232495958480878522078771851983160967357791087986790483768450128708317280110919690116849713500424767215986320544147389153856409959235346314234469474888489609284280893974395854145648266354527719543298480828246714569457360294987282055274380431543157995341869344742910380477058897885621302710659984046884620739366888404082686263456967592152280130571128214085213727562251785178707017566541931342429719886278116953210468124531081190842322977088558905573136170382884486173354563227466163103269742121916945009374892921497457539540886900611819919656821451222795653333254510898126577096531309138833060248884936983170816594477407193838633205470776108528398238825927973247860492799980801219009339671328809900311791959988138663138754503732343934006988434589106504240243411219244575762619927294267185772499384943636759708711669920874921983442352364042188541427761327620129381333591695701997395989643685528350115633317460653282119090243065581526566767404056531749688047463725143338580632714089086968828882640298969620933890973045098236942036894973402015417997869061653514269890236383189681678633162104121798518416211900052251252123045035205789234157963235135130727602497540113447181121905590877501469504082345624492838892793988119441612274775688823482667209317344465570924478831401432757985585521755946325668874004589945220404233693026260790036179802366048698024914890879248536945419260561559878885506964758294669062908322538829641967397054116999295597756845530774401278173909651537013123407156032383101523101069727457119460805337089068322912351534175674646054988913785517571339538726156246075465376826428885386906101069042748474741161571313382861738565850157770498606901427628525832042461302224276864301242960409423539879874436975445774224858658921027008899792901633924273782866815944081082378871111412339013939872506862568034528137513775007629372936073464840617046875579805185619207666204629512497223873653173101265387334262261107985154296703470892922760265407670063364148822039979055624263934960636234664667650652785250285498516511380924040593509678148420339146353698486159935235023585319961939489345312078605479621121691194332036175764122669445055960612957844895086850150085763521630350351796869280578321015099397844098419609822195103176165754986046231879685251059456057253177814242948868935651895859124975096779709390107315391769397137972934849177234279754015516805395407034813124257471376947507005343841740281326348789487905943208199735635394463021799241899741070312946928811372701095900078721355957515384425653822010247257008144461912713875431189426320525955910944106650485688478899966957413052949278337775995102362148518699457827968128979809412307058005436308512919505372756486940416074180586917435521519831532988513479325517058759396529832977274411249467998837774889056022302852901658485493771845069646139546305878833913693156819439056091446025767510159394221649331242689939682860423048370934304004986144007259805198980193117828764332760320036749484820636538768733218544836660917561005889460375049605919081589041861743267102378033050646523555967801932404031271685964601886910281033670316603161311819855125212243415455893876869178584622706810496274245943029194309870868293630013602253457536731662304268839464619245901589493889785817236275761005390733868139417871212943025776147908818452182886881353679382454844228010742737601586131927655673376652981099065718607886333049983537066756706459971921511067278556150777774712024350641196176090434187795586332609681664791572484670091739684408644752011853173461129694896139380415917950232983857400525090728072838345038052953316388198285155303804066437496835230564492532682261029301031925645004481424836442946977897726240408047165416038965679937817538120266671599513421315954284218188922173291722198929503863432996422107689002749873324205504517162293784021185182354511057154076454678380677355185112469780564012936799058417605682286994839252151248369883917033817890097081001931465798083529190395493370545098758980006732438109866284200775411315759016778845632793622831020625206960938614557477164490477193764191457614593651286890918628109052397554646727377816806622764068229230338211367242483023710999488097751015530464126138352087796670826072163056267931812696759655159506865694610431280169087404952377097042181915222728428793632239087579786351813682498586800451928293913717324053848397139190855693858083707462622849000527861424913861861598314786947236828681574062814792541471625506653746687444165637351934666068399385550737754107542077404441995108929073340462324124186800651906552158047935473734975017344171685126267353926348346698919418434589802025456005274060770416620461985858909200642063908405014082326336981080066271932265755047017653724532876782892297251446408356722568874371123226386284498259515412156233642409779833709297795798065939898703187728110220908204697412854717457698312406209829250547180457544486167718724335105264172135631639517391830398734916316755593564323214168798441841528213691565374299767101742241426527634329215636582614520675327062326101692051645748812724883437279822423963321146522654010172430808921895769736568387417214402638939693184641732464661100325308196395299414713471454187778270637901756856331582219786960156974572301757512913073416835080732620932567793998942463198075233977944678089634521107772921468053558864695537416013766935597713518875696302602759559274425319040301070503731406995077656585484789297201476097140913042564675931462006253924554663339791516330160715649292654688011574170841378666695998253592965146444280852845073604507837773431119410137855935758818201403461050053001816983850903416105057805409608249196701273169296100977681286176766063287150446915123807252784940843731240684284763695525152387793052433576574272445867189213149298550159304959850306505083422797092115461466142140781725690695696968792899743305823948695788880997719386140596239002391564113808651846619312831780834131487828412429602546649954210952523865324817560733441088344066654427331040913903812887986796614302169913214857708254021798691661906944853359333850438531601194424429756820457734972786617600129587278772172520929956989903828665971050659176726199212123601384258942732339338741619899187561452913618570001037918686629795126680978407145288116925557893134924562154994313169177424584943191035874386768011845571372596368527843833869141213198463453717039374521249432750891955559078111015899950600272666301648732261053467204089818613466211884575682939225702471000013334210281923256417721185426863790655792106885537025643220987495386847196701709945400920683318081645063230357326010923658538043495841321442286274469056312129611820068472983135319973326659844032337284111753604143974271888587813239847787374541661562297864504019764132641455493258293692379099516797907974297140038415660650263008393392600322884494155908790943038589734194827245820629351825606998785460019043179702078931560938528162903116633213520093334388216204201139114435005618266313909059146928028655765518928167481508233597978581908504888173709522052238173219972723740502618707206407067087911980135838987105093121680325633151356570026517363238856274310480556468346966714475202699143428812084724745641604505242460654097082513765870863267360611569229422011619702272101665582092706847292186029163155275300206702493137513359240978442337520216715860919644404801981673941847063735503610790010806158205443167966715187588791138578029810393034193703526942954372497958271748074573772609286939535833366281676448044851648579484415849919040392838303324330269022140623430711936824573347438697206194696508910710540414332597787354007470315534126451461225191060479236515673100281118031748283277310384245029113734512234908843624182377266725741516799290471481546635290228230241791574864001553237630556452614005527386710566055782361706137391069523897992230970018627709383300079694528277665530245248317931429188313714192093806013816292640431695899056522750465130405194345737933859092847619644866049784815446079568800977748311734896059898869846387149375860677677999021699805655665178185633314013137213172187189085265653007763671986933264981770030058040465282976064211527483485305608837863649426774577696662036497868185580043473672391850393705033445643316217171090876339471248546776830118038703666214009993712289320755094940273957344643229843505706052565599935855097328962231030864376137016496489955911034465483480076733610548361855534373121661432079348667589709585048000256447464266834165394955751071876646043523956512414103050001106142525542240239244485928406610022288671566514483869437454297247270020980590169619025905965368900734868196906938952179749004736386520548779365008314130825622260852046657701568146884650109934808009387829730817680787231599981493664807361472796275688979702374250426292854380231873774161983158927041705035042085866811681451614034176156632296192315564502672163128898221110473396920130822485347284582175183465429229895297777442687143208684934006543691778786718817027574929629677048955291074298876981158223935981511069714211613570913284762738367657062966114290463590075031014728300872390346977619648169623946665205741443451443518413933690443880393465660918473771334696413129595080851683407650558333876712092327424231278117569424418871877578104363176231467983694477724540451744841969254157036653138170696616161231406006432911998816304110761789070619129030534713304909652912360169800199501194966912360834003028688680676078133389598473606807523366454974912483472695543403514514996616173895076146888198548058018465467962411742850418640646140300223599045923290846682691400577312112572749308021120629525512324588891434668509215430662368412732643073241882597538560578504654491913039548392280621634034341542338519420095371595767185894361115102070034467925138035431434719364803299817469577684780828345317311235717412227086348517789204771583407163142933192266320542048317021431131960642164239702704348479601020857501959030030825858788446507026811162459088918778852410906715549940780223436200720165738273211144689898928968925238616579161142383631512597511588803853487503292307044719288968870169439592313112437526747347404287010152897569155262241011436093395618635804641016677682599549773124878139084188548043176681921706379335783383669085217011041638391651669598223576803577974238148588607092911934298431433866306849154652488962375352518085146847851614688554253339544071221904286631679014101575145532396218133393521210532023914935532760298248991307325889891988250493815700751351997588221633788946781313662466932603917090688099790047573788316738645185289327348285767772655886371561773098545379976090169002850337817675454998071867727402214707379384775483662657257254015724928174345776511969721751540840843941991962882305441049365891417373163087582811749015496699209722625597481398129908287500269493530070208563640953776258958066833341138506706299428810172511926361425318312326506967478434695736171488858987208382702931953198825332510854449438901471150405659226306656825299886097344729625496056039738205540078092739484118535567570321154579158437169890768079694914936913335310021861318487213698519328556205217416913246779562509911211990672295603170828123361735714598028209028213216894035735208230089217694038267217288969255528007293059355029264676260580284764576248368065012891171205439925615634757597679723387359356257306994441559361042572547869507678239231279123927011363226327186898347870469895402384124312861852800024323407492453401233481326862783850139505859558602626559456429450142177304019861115076188769499419115727275482495063985934092946412779078079649295510246375000897347584700524486484649171418218863866388437978476083000327451236274206621873858949120815067702737188020492950330076477229166763050787719088249161646515807451607390685717835424625857872487238882580293192897162211475693836113383495866390181605920027096746956319399286831468307593632137802560491916256309616620747473726116609585322965362998492926622111931092968786198699891733811898944434920096868177674526846195258926666217785351855809764205558831807458027691977520778456194837821590478234369349484515630618788966327532116970742005470400718797005163941626350463940640280288526055330386565769750443220609181823317427341923242940463925768328400169884698069619001710148395646160965884659241982219443302920812577445472714199009787457260646235620577160604747723330021111829341312241166451855381923677467643019648453505181188658056756255416016739196179652823303874520614985945978457902167173462237772458797467860448039008367655912012455599527900832628773694252701604326376602154204345312246046330847623313291232810478157857456425161989824453762273236044520191371804531429181336816563547711419320964886617322325267392790762439295441566226596436286642538576560311808545697622016246446089716510111969389571955864304733493538622006245555718324239467159592968865812647426890257899205331648122428190939233396910338522657516708812482975138800506668591484555260026719563481199510382177808804586346885295911484841005604119568958702233258378366950517897198342811659995952998033615216213866524125601541560825305292717313287129529723867835427228004014337514145221208517458719887646243380354881243401374528696548897138070261114203399801481058600413118905676422979434735706023142167908758857615351308596124047704667088524750703064553560632156308399958388275038704583090133968428520958552894548435285376945724332944354672597388215695233815235372456122400471389945214438117018521441744063206994085007618777457887579307580551303405399723541402501213617210170252480429576056480402795345160517541984449593820146158302166379145961030360837932917647170091995999470650048966099752569195815308724087137113039970554472009801138457299035657760550763463717099040412919516869309917434255340980118090553383888612083245265652109419532612597509780499821738138323104402980154073595095748975157718465952917197290566865144934054206834546770536062670708196810015894788741503613510576848216724183918561575092106988721723429524758527628518225522828329333256441397151028717902656720444120866608799724909998809776460767281455121206131198828098183373817891557636905978732881470442363131629126554901128163408540940746239250477595741222810478516456170994576746379192506739725803232955820401034756433692950267716289303448051935952233095344810409820343037021866998942688110219918762129328628368638634008207472994539378804286601621605584372730269035162924630092000673447785273875282383654410554966095449910549999401351550411907609138237755280943853293319814857265135301289390254525715596094002722253471917297100642547608406161053256725317332387947235306218054513399621733787177462388860785011500012256905897916569467011608971920957993881341596764418616293219077409834060393824715423163254380653923440947463955583928653883412205124133655637161369738254193115375118147756129938959582284359084913119319926990499683658178391181499769699178714179145783338582234869231648881563434458994537082542833985205311207522747491998849273176858030157812371050726982823486360247907499321336113548558381832048420047788538960940848872395892645365731682178787485198392183545281469391736715575123028613468774136923262369040464999618150017444530110123673354863213109068121431198967346718896225607456575382185005809846134256450095881180837245680273300134254254238463486027576233413558512388530691894510435456977669315312478231335685707036114813311468270582215650687067207528107331332802660652363037180130882247111567355611095132482044154530583770160014108750968304875324095068557523620964669199641093588357844720182205647008523550958026948677669702743486075921173946873607475777476124051578730891232465847470713793268604861542998133947463066546998514725058777218587134216438145773392061770585885408934972817009922274738405862913463132543719678000987155148863347496686564712116746246080152316644532580496580288936873758839115692630133958620559070294018557776425968715045247294593330328841443859517059338878496423945453113949880309243048538978451952244621916503075381534819068640928264637660092231255698485478145172171410172196135221045188772005843622829618619739967632968551374608706865415253438656334341753399963226214443755173080592880846052664167074971155493368048630365361358059218559786536271597971297549112025901791273124617660275073874085489583638709966142215236518160228376192422732399065055810484555049658552934446150961607893549487231915080862526038780854230543668130839325763893105517403077964104987411511117302661105660559205891927720993428801635698281563914410512549839249629921751357932161156405873069128245168970523977514814627536567989228667622479831284192864448424593939069176003058366305884895513941130119707313033685000102766698933391515590533220208699023396711099441421233944865172143095257508114849154610472081873683552504562936965367363913396567955026858011613365160063254013502595885682174705806918204809297898751493757029445417794472726819711573853631717025782185501776668696873841986370932233339839652272595500110446575542356045914017128584621923286544610540295951022547430754234763421655074501361305949794371964948845050582455366812121549633309908763621861541460724949791226076034595042644864669286812244844476215580381352576412155441316063902657704437581720200268217603134181369546453919689093641968711311905444019741263404621851044670844833755140552616992575518820987854743011283145978386517247665418016443622272615537690537567437236435186212940089529807889520967822275282653830625903442468446211644894327866477510783988326600676065827140029571926006361230720831629050477201985780007300850422040231033664934569691373390343081850067288627875832247866051959077541359249655756513429919353768298387535014554464134589081704143950759264935628642803995504649642479936649531497450329559822286414831345722060652765499400977037427691037379061012922171176222283498271375949247577704796747623144344627232913525168762254036071626129075559470999867504573273154263668405986092507911144924666006891097504501815044112213736323194482576532894119474037068021967207175547284295451936360512212869284712754990545564949913798064311438526505734064308678666304306899566157579864203714502360047189027507369463479295688677356637658795380881078274466698022822206568564462621831503577605369434910522503128480503849568099040520146591212348052921917960099607497979189634087109296706404055810015964689301818010179849498585559084315398456364717901271841015576846915813966190103953659810933379916674602744109012179738914048034601912601283767666090987317523620068593182348054830558762126711562287625524530825173926073717862785176744680306238429534986381651593578219211975096886229935513657974519192145150717239328334394103538327354167245571791872843199434364222757407918778518467554804252229180867787136704062336989684575298917728816688931545544662217639808710021184681464470847793104344870561928910505532031006358180636546314302188704630951641149174210892889705928742651558407828192314277338495309964678531316384109737736485758839616898839084072092140693708565995168583687673946426988785276733077482316133527363707581674125600927354256095017613562162136214568547469851010030489859029433400172091207867320434910992332404589262704296199086499696163048203260203487484766274586186989776332082979070869845952008747532123547947184603435074628241941033627462482587393302107076518152448111812165711647686844636192432768458693525997419579599451181929675706378850886726743661901123518299164255165822700639331009372044242030573137672039947442278946538128547345542820998092071599603430749318884005647049346604864566363493559709193155216079266172723316243868044255111342478948634298291959846217978342891377379627157154537592303275558328433014114175316836232309954888762620128793810502688355687807672534205130028340557555882812373506019677023049105051062245224377071038671440526363869764811492627475491274537571141587111422879291436220582517466485432878825999964637780385543245821883793129805448019838587640346680986615092822252347956908338042574575078295933575860684742324573555427919833929559200602275688954133549610134088336453297517416622613120522737642782919251030101087199919297635415716997714270152875352612232551901056331436891403411243525500618860190916642460261697390961739108242606813344664156192677364364376710971115376448573460417463115866303656577525580368239878787872600942176712565243327889357421925323055775279255117337557219515676969257599308849237219442432881675159106705300045026906945492679426014887691986722055860975893304464949096881770367993861314531462708665165515928640677352150083355480313704668286236668740169868375798825682852682116733844622810801218130198185112897709309923664665124114091907191984726259452833071906641055295851823250118583967652992108490437589471372519335275955354979548986631193922082567925594784310769902001273388761486434672552151750749035436494981417757285968621866671241705775724037210271745511139072911965930332744627963100424773415255304109250712709401991140569787020427518594039889642207403544191987814259989144018304312635797558386007953208069271686277012507214491257212765266454656439330551696814811088806247976823530523542670383407605086419180626336454769212818745332681674960403229219232796068612322783468979435333846842622041194540541485838344253844544963674124053816232376885450120555903224737470217423435432515325437582410933430461703106535530124107823475072672907989658010516668429045418973705458613599901606830360071493828208310458628931822327294063916787484801595597094542424767848893055556477314402070863747994551793313689645886896002490358630537986459312203116526945336344122218710378732495607851053300121175386029095427846960910069408789557244532962385449110016264037064847066093195910820157659814222080555114634687521719627660485063760560544620874804715902114636484042414786116931225195922635093191239985333235054216729183176218508352885844385876513314498303431492140661687838169921427514185198848004410295929313035402625013647512909680678048547632036831652875294861757906244934102304199662655670048741029071417881683512056942879223312182516740521310810306205265965280118981242793849564685999308091781245499298016508482413810625417760671572042926566873034982395775291400638852427000208310943420991532707622615853390990539413534783645781476467728765208736112509242839485536914169112998794895248666596310672131753399345577582373992581051247642543974577183774325637952863367472759359413769230470486727061019154087317596502542303252966727006843213683159238674432258603146720842662872668364833458901665510962458302776879014593404795268052103537454859826630304669553065750376912380415456352340256727097543247742312033634657305707545703733112772991757172527181899150489224466944175970172010749088164636203995785818333476097417632052340428325219555606308487158890689850218938062671838520603457485584814138858972729691924795883376350153368461523557502389560697121219079673017589665695680241711153733970934735196152651219057243197838634976865165958956433060800795033676386830591861402269120796799030188531054057719729292035520003878828291818573284668436196425239131221212222270885509960535615703781300624366095068275082058566905648437776462106327491091710261957903298667684673628359656431797307260722881028593552151895219233457017353793437056230879083354826752168804597223218383634950174910414323568534374148907129579037953834815828078072151728338777362799846923911861802212004289476348972529547786304073532314982798750834705427873084215451880486889770228981393478011267542300165673714012715646744036594153095958332513075750768472347414666758045513159128538122786138608030401646989552008221896529935304080188489040544410565987694750787973114216730453510963136497710801267615460111625808274563541797108299961911137697398914830890553117280877736065558913651473304769034548642461435575947922433161891519015882979433056390398768168545095952119955016208042802153062340889569211282056678639527428719728474009967950943299858084906172185937412477987944284470275782827833551885592916602512338497540177059807326566908272163761900477546525462264721210376695265307638548028570790229532824636627058179106380732758592372536458171709638911400870514283993151370786687817308627661736653924976476024154972710015221249307809360214746734018835547636038728577853678464374261828662674157705013406825483919241638202926588614004223277216486661859369109171648425007880678297659504148477656064531748608600324494763888327834211784179272284238750565307267852946955307999996723062350698237052875214567178903156141420366698979102070734357082611222709939618666244284953917811747803091379678915812086198843725756825983519526891475154808445282940421553726766793866871436491319023805521582276639322447527880253036856547644080460797627614568349090122828850388605880624280067780115302683038637206768064400603045180607617722157162158835214447113295990292120576639157902699597089375705117524038256615554911311426647527064565283207794250850034142699750072910761444667664793943475320829702855513239884103622559894552492653510646573282784409634607917753178951937237735981537246721319494007831482207430368017760325788327290691303122043356287526458803352405624456123493810339155640934940008005720952402051764443989865163117219513072909130377678651401217403331641900784541855395170708775517881709470744340972614928247196658643461155095206026855732688935217229092587547929507600591157840381474575465730738226674242162009175893877656591087786655554369592895177490683328608907456603226730647390552279765849514630056185574653709783404637724878280222611892385410819023469032339343668471401155613199622336713365451189923830477242639866772549249990326318635080599666755711910703073857745661913831243742715135302632911858831882254589380819960985888574879870254761101954951277918453289296153128506350513460825851850594873164503182372523212735787378668510734370000781835897318518666871312768457707250508503016259118909849971415612467836000374713969023281096120171204995312554385428530971055376207819549546575257004685220201982080695541308140170415603124107206790535786543101842803270389524522426738664484023933425163714938727496947310279444899474773471388159394472973582012317701458603022157774172723676907712556215587117947466011641097893360725171558845147683715764868690691013322215359313852036193754499490170798467697778938078139849045462672762917097470061450183014334677726302583857754919109893230385505627938992022114463646089075739790427334639447588442742242981928631587147118606255087013660430689066935148470346455581770790593493051621250840044175387879257591534097243986794209743064433508925475691656921613135008022895857958730525154885403752577341238984751743444827787530779644669609218839481922429322170787186187146472304295692390016260623127795116055201778215598782515778364954676477633770239611529983853299663992425801122661903486715916308434794896018816477987273542838269486404602296959625765520649600008113795201183451526641916141037101960492791981900054652212387727058704884244278433770118534516397921404844777582149619823767162681078573631858291409878113295697658254414877596340537872247328068289761097282379965527395226584973238523971428153875136340624508348679767824461647252828424439570229221005276521185619079962139795532641905172737861853664170680141036368505554489557529823806475763781383486851987641221342489545383794527906250803305114822191980556128264888170179618700874570931517099027491186526406072246468313173489909463503548353543917806685174450802019410532517044756444129875607666766676029780861932710358551590338652978171936170034224439243942752820094457727302123029677418170120050508634052456163204847521636177537384547726615723755342834539072251697208382968251083680968473753984182196041674262376477532800477330284820392581043355066857817959430168344834043845561499684063616981092104362526707704680924685910381530571271005776147789512623347493896986658332291410859533392736889784716948787095850141006868572763977665532333664141087372707441072761238050993623601655838254273519013705106256526873246069826856938563506638588342000228513237493616968498403199376272936934490008054062973047132334426963900455359007259413797412478568756500193526284594003600817616338836358744119685527139521443739452182728143265524399008914714829593490709014288762854225671756052634620815333587500492072861508160185508583243307884979575820189048665915634196783995741413203841854257167056114549157764413352745058064969680190807496893124835376226821349544970762645761295995485587432315493647187299883667421013909826849141014032513295847197864797631165575776251310813831587199937614926573253686614949722215001084165701958393241294164871866467257297762357645864920832217784363405654045655340656876855293932271409954166529507073581982695109064042138599304315170774203415088425401713103546301555367293078219990073561434022847728762140126976202119418663843389071096863002107880287876545490126653538592016164094881917347987823865468051244777560990341957032757242587807571890714747796090943984844013858796639657964788088428456725354914086294601539263902131446078523568009014302335421460496435702362774253758553282186033318524607466501742099696213455421816387360224496334234354952636195611209715201247867893498821083397018124059906142973845753440842021899559243409031834740165123848625326357699153180696339960130806155731427580664030783174479202635405765558245413941884120648676910553175052058544825126215193033989239860720573675378584047781503904841832279599084037789366802635097154054539416142785780852883279218242228020393404177195902120232996630434840888907337173755498983162882895855833455352709168373634754151155609833133702478823856555708555679237389478789047388035116840107788847885806745068972329336751013072632777113693697079844079006738692076608232443414544970742767432479269410890233443366256994019340358331869249675566107042293890863309795327581643789031450622580834274878401862552192558569209548998941320911348056429945282484355366263600954715490543980643878897202572212924676833619877499709025002913930568394720157423049564887235502182059534366525020291705055259352015321519466622262427761448808839069916080479521918511541187730006880703736642342909076618360516414234254618818958468406644084940371403748649613080568807365165879540286430472929436748751236497314700860253201367861433774083660782552459077023625007718848674079766359492403709582118668282080660580740775124533044970491369705346181328685186570704349355988998175067435601755202626080036856149444228507449857621118965405474303567948505286866379252918179315167991998153471487889560685311195345158529529710814905804633497104086897525400792662047354823752968836465705743114788371696534430102055506419043273883478903712163368533452781410336360870145149925024266359957545207443528162958028310419459351615389371813764883862074069905621442914062859325713400653508214528240486094900369151723566249028119443689673678306706904985539625577801415980887965666347498516321732350224183958525318613230044518346722598628165906344436531089002257335774340290531136980847517343277727847886147165025334116415488058601115072964249735337940385626451494586491912563156984696911991816904780314507168536731399345209443596285088316644193828935413930950749334227227502611190507212680687664174455976259583502448595420304531929002007569975255253617669396512578166788628949634834679952129250003347258009428969373999553454568562981861985493549854468148702050845324265885177231570488848908012183626605275500274403956463585995507264963446021727295700808921124757017591297789920459001872388110960433710685338923171817615592063326507765010826147300649682058477067114652544104760548729003742847749151969991736323162993560617041484245258052446941543796300084006834119999961291995207202734466747020730274885400877865530159460989968333644899927740653133519144859074477876715238047541051767146229555052289405558379302229603580770288186078433654469781448599460681930027858116821942811970546531214232496383204082443425327411326764031837401422113696908330922640564630627466816773674799492568937701610480659297006912574648477760481831351666167861287633196384105436714785101040354292304530987417157411912565005270268433910262832377894871018328745544268771642647968629797666610607552759872376939845295354961588189586920009763930554076389487782736136363416849738505038880904689830882407044844565876755619581620613527598203906272545129346411175910963835799440208183232467996841819328969528601492075568650216682794309868132135115349093664179711412655637833981543263794109528985001831245287022738059148489732978336761871426674809266290034778590770333611497766354995051856654527695981900032039258514280885461204131755188382999388269573810754663643242117368081861842119876531417832370652857792268711671243142522479592579858796803135758216459696624089565416833621515483034351902617601393620910720190409444085467757643451181087087860054554353017424795609855644761360166447639437329967813847806221369586359517407741635551909163867658945126974154108111596749081482679655930078043152131415238915625927821978429807087046664040298457544629297845174461743980732985498317325022169246578774734288863363978722387294129707561658244398201986630306056129278690478864363714857311756068560950024547778966835949797165691178277343235798997068387078122799574486317899559983646191698029910394764889962949006674758487984206075907829637291966252635601837988445955346558014374988410754167088319140647948223359720652954590682704112485518436088650060648313059155292573314645688434607669009926429187942506256604545516773990427255654669895219783615001746635638998405246669835773949605256293350987186478028251800131060946139107681899597234049109582773929761275229092190347250043885830019743167493301717990953162628553100841746709083504278126577048625093600327675484216058509870542714719079106617268622999426141490667956169841843126533124606788029305584768367546899479778086129006105713550175801548813195567709308910988692970872610528211188863026728065254820270064224825940193693734221594774121242090257234210035727129994578821912924804440461753732015862131460882615131172372153119885288826108298447908443432073985693355772279758337307015543071016636268572683165583899200979090623134712323321504483653962635608509372662900434445175823836228647618281924613370334802507286885494060096105953098021370996224275887057274695666769795029556158113603988134013540559682174716568209591584387683567012483746061189767459808223605649463790527817652133817420364726119109234742217611536914157002797766074158176389730960308865226776222730034726263153592513758172377056523580584893693446578099512448611671709359589153828437897005652928192423809384260300132494285827212381848045289850245710563045991906065925704259159048700601194402772480749692728197054080195436405118052694304130666354695140199581586755482949276770875083498495994084210226741135010727435415309401408245376167392183544119147367082258055757441640313559722847194764241519946015402723517828003041769237109826076008517515709811574367111984398020622692537713737274447756548561084512927089468881216700611340019178393076967853746365215246421333739016202259519270114584733551467720068032069563839781351420706260635719275774650565285435001287246249040962850025605230355408767213267292525954084497746395112859655281430901066444967537182718631041193764097295423778323927724230451146183884964440463541338341593269132196789294087885260759184777983121251652956838320592497026427853488233222246178414568765958858115426284218986142811039858970270624745544227469527712714121198136164383795134386989478601660585637973278974427204374823470256373419289782654668202854771263417068226236695382630108018125282878497270217629897740369801837895661019345692230692673328076971714802509556332191567395689628633565912195618396189800137159576048845634847761234079990260281983409517527024995370135565220763410279497968509338142493724789993993887379489293331360376637199489369327672315032631749521237825438497025693589138634072019273144686172145078846218313336139071029504607712698930851169840435505726078324662592063650866311770101203679096286937452541861122128703171248077073847827617361102910873519088285918963662962875758589519382188985853284331878241455572464103842715208697249320192311102462430726643773096628944377333245365584110147604488637408855449202333127980353404505613911884702125495926323028215320101271847736205444746536941353389820362886635569663474294096608900132187394631517175198422837619371044820686406296465521865254617899599603710307968839563240722281494964938154995670170837135921216264640450287878483814566210228731835395924244857695635812183960851464251388484045010674701349715347077113597513711689086432389930906052709845319824286359620170266099238074530498783756099934521682928934829319460556767491321781779608048313386864811507031853529350060342390876760998163581300539746665203204647881885614934335281367825050513436459595009051857628460021875934107974636686984961978912629899350817302690917794599365008526228475579444637213353974509754527685646774250186145571709747618125570210879736132261200525311932890766996026474916278704710914704203716520744680889961806675562063181846751760896805020132026316263589287057343957919219182213193436031129114571830889980340342397475155844060484445879908657241772170909634670743423649683375585393737915423402574484329779455624927910363130485302675378718135023499135447464352194003065531940031733194668577080187168737115730270437409037855968447855474658205306819491601249960347088515030729512189829549526772623366013802603645217539241045121773767772227755331811485117623790786340719515639165064845788312713673542005757938047499263125571309806840250150538740568883607036308010001079815878909807973001952408905876985890069180834087666076106135251924286062212826795489927985380842879500295390428782993646774308093302545828323954897317572259264276825995629737204533995116283202066695302494111790846582223983893445971138038871330323246006903107972301083122665393427632609443800394907470463539145168122117705922852396579968845410087965244674960104313797411431446853877006722489104304630877320797867856977449706161703167741986295975314837015930666553025088713754880355720775774723606232762254706834588102385570136082845371092220780058948440948718257443819146404576781367019545710487934388008907770533047255881983483429910065668140132004445510767762117176065056098769542453990322795506138618333304047963714861603065121605215490210594804871486599698792515501655510960065199717411184346494847582423539552988196643933076978836182570848034497985578947315919150824032604997077378646861461409200632449281708330662390038572361870964232825875231214555978868353815474858933085798561821852549984857194672351696097213531760344295918578209461254279115579407543370095221211802329796723858258911865210452468852328806446707763316701412453167973209749634993041708046060202561908065153716496432337279395283342059225610776904688710034008938466248666715473184274004815466210202444546637973677783622236098427057352444396415156804890825027436782567219634167005005021204401957978405271301441146821826299379308650128841201041949569045422305284354355167773262766813727216966581901412713612184181911761934712522640268978730692830943268713089575995394990988625505379618933739325183077924806563306374223078413475274858523323275905284386171158164477040597836660362300859433338220268633804805569024462802137999844791874252073462513320991870087595983109095145446364376651433606819915757486581744756394584330186460875684658501369697636034060171159242382929940635594470440558611934693196677874995884102129621306333050111551796093546422390571614127606262178633128264831022323707730062582938009052742111141374828724404986572453826417997205968990761365754167382308007603785261826617262831835593004603748588540546713659455379255150532953149523271092156524916037647768519045895338761149960511645507747918511543346921455618408549527772519206930202687119946938214249685878222199918726472361334328925204265175868285785076605521495446784012931357399226911400457180802824566817536084564343121599028959217592100178857346562143359721783296477781139822663527978924936172009209916107220058884715718205753708869356732480771715745208861210560298237310669838953559304003988727870938045213155742755491727475714961393522656803467249410571917056495046571502453820949470371289260590363597288249760753791004105864304856896972069044445264186022635833995817282812444017183747411966133387389323568145904500294166791906129371307533937678150366892619176153486585757429079334873465358617638104092767787056821500532743878612845319584940587582359205429950584698158528906633353475776696354914606080760054616755588383689562104202670098810462577280911584247711202197557557328834687090333817855946622248891481777249507310608355028539118312045891037862503323497792149180394931079128309600449190119974315659897864165384384943545106262169427732280795120477476925048512757757162850398755714024505706836648496246232203260598836287071896185368210666927102426804142624463430671273991100781957395304099846722558830302084393505195340332910992355518253036922303111511746530573185718501108934053796911393115748128586980635532153117556862800644907191010450832660122900541145260216107592953890809387212335744717104673199100908672529293367077882100156820090307788668697536231144239026679573538071202662877871619557609171982887480189717828167468200285828138945931915075304852951280744814520439703518407987438321954152227494022128932540318541661194018314000493975305294823571603423984934811695770267651975323032138520862960619509267186284552350175483504935019399703302191103665832292163877232131284499322004188054309468505378781048902264401727927505167846626222860840230358392789142488996716564984851116946629505432601905968899231747605145717301082681197863239556272489064217555324252669991756523335115860603743365054159338179631078277328899624800613858598857154241748462659605658981442396806803581146451524604480822361471952431639996559521450197829150519753407217631903424833015661279327165804006415254875184306738204051381522586309745461541475055735764812074665169810609532451488447444971863483504433014763886112876291929706045570704570103218068019201386544368221210711886034283907123559061633799282437144650615548802368145498666183602995186930038222540751090147805477513949486938334378949918482367894867278230924091716454866371946930165864016561867368589757723864178750351187417597905827510868855376431257507455976181603476291030467291860226278296184463732436729913067709869215470611360206461827944138815486716270212399162171718263228909306918992739970174297598031064021923293830821905591051948465725668912313436644175940573890516435138747389020229350862824328248318621794195539687537774845588987945595974655107106378228125086853684495384688951244915498494610087366332247777368136961146136755442965821927079004529518947172731797999881941021073665047820429802404954551033500798769787145096348647970890325421825269662835119844919786712050345885504382799765760032441235158142897148357704941043610042010229365538552096479179811733880082717214745122447012502755677716776505050653822340092667354673763065977198895614034422325981511931069223516085420187434668494238751511082636203045193789341059696734380636788836882625876920758776275726737190050008908546137401892718607358946953828705105327816490465626153079196802440394178487742350750283672217700602942450353628713437964302764024608623246487379075318387741066240032337055040937092771623035735360773951843206026703856637324050883476902564413403326469628886537328183820352917946263701459811692219625393614034092570591611335301535543245571323144529211839471149179106401843748935142383624011065311749479862559178688005130021681813848640947535733834246208685229934717350451904911207083902317741075892654894282822534621257510498911580156148899505775015786628828630597134997515782484845321123988091262894955787534958841728129555401412455844233328378217228155427651469797129627552261598528726379343473726918062186326926470662771266245406511240354375402320241082025904586113583697070808667794713756445383923636844429461912018407425177756193171005942586103113962287780485556660801486739795597710223640677632604520139073450194271378591520362340813339073121995656283564056445425744636657824396678653916898515426764332030316010266169280184469418031590108793720745738157795944089926450178165229433761489469504346208196697682951577676284186326940055589762619612436378623492697770274540009358687293983532920006608887143531227893931746952094293850022092418292903962270990019219207160817856587062875063578887247398945087378315791541673318615593368440639702495626079086612386349783804494304101228790408582913669499682456760287107177999702540520454254587822520711895695521534510537397649976916538417707793808805378835234446594012527558164159881416773035863725942365902186437919932267773630889429555424983035826724784698696169496521685251331351270933805450148557666622442719430863521920575731248895020526037839963139031203025063636288864400065401183965220414474336987122831912196846298058115253719136265351441469468521684959211377899129725282083306661656368720674812818996981185603526741322485277068729947777646088134190872768302581481032551928021070889019067687744683908689302174035722337096034294195326505733232128416471741965096759828666926098395566732070538986960031203836675416171600035176240938776960167451053122161167226099251684706997149135845694456882951284952980480915116058281696214366963082858404568156573734270741998664057041301326367283010425320123164832893678597256327770082979570708909485045088032543238309174829337740031709803078191218385207223327132688126121722301020998730438757051251002300784309090351301145739849910618861720742103284682170716115220717490451646113096797685238390242587527447611824820961645621334690966326602909638488740716502443378374825952811201073625609424180326086406277630324389191423978207341869608184846215428519214434952738927955918863624754288129552584627198729638865122099143210457926399867597457332018558764258741480750601844349935023768172417779861136890429979578039384845463592139649690657636489483497076619118291640021798843730913643578784570521762242924704775151735146658433941017236094037587071096318080524803146015390843871671713927958163013798794545565011266676935282379211248625437719876108463603999770497881364976842370416915975505260639604324813389273625459940857127505969911816148416855704024977147876629434685394965861774110540260987131908444672388662528205378033344697629233066161228094968694654426223802896106407384444303293424743110820501461182915671766062024850429543794832455013096709971584925575654289825485096019293647235187325459294309139360950719702664998270929741581337443640221204189574177475619366796908651254793414808077561643561694899620313090758555256156992316188558971188563825622595685142440171098275031291955161834623062821165749089422099229507652789096942632470023086267689775668578465228310907997889662759928482838691416198705326608399743822989633439065392018123332104547054406901999934125150090949129069450380366384006010734797866844872169302804150643917025765858360016928353831270644483293816194885934046210069574738148293102101413858981801567338196866531725792498888280729252475996341382783703220011096399985982302253885942692397626458549020388149032712284311286206924249013126312148470262952230752848197674593316811333113037262532314831151018644761531674924114111536227085375534764666482828983442983624674408766386974779554284420788633219290613106452057674638339285872387135816075727129896771814397455272542593330853673764306050031775160383136481234007032293141486600221188978094799286723453654746327433514650177174683818159755052857011279376473590727915586468590434453054594188156741077217824121335118492041975654409588425733397002658673819350029094312706414248465825138462669902447367913541676348426874199002292402719741818097348317918525553464219819855072881884774379412659945474082123450276709993978887260375639257835251452307494620331634911499808151967745272860389604344348067676026194806037432745263253922680447646041333206347319184411596759227128357563758890266308072131650629892467345489005161111613356281794044260194248954197214353365440387336473688050113810728196924098318146872843219391515817680308649480176509191878863339747977420407117992999839647930858357791260207159436921839431615974884796493610537438321288840836050356001856295829215608642448876144588809239122495113834180198596879806604374272192784652115311106761472305918138230680863291177438531761517175731689622180884805143838115904355626976745211773569835680402199545187553677115485360592554122968807849294931504344404950102950906784645985175749682712165967356587335914404549206518856649962179330157195358354956191090138023449541869064965805696651001451848316550605078774791480081870008489002936495054296303855869885196213098836510482361730388875556020780317963859680759921419842691660135865138121262447104144056774944013234622727853394568181567257731029868855731229240989935548489482766842610914994739390762811289753204821977486978604086252190533948108191366136093114469147116379181331320757539461558277899408375354861176879478764107194310242667126153899477987770703419772595567361001539844594173298660519867441297908803708751680506107639829573611626202562018834013806010089727838499539653899498616151604977049483465946724016865333254432235730808834397334135859014857779195112951175409926845931785534120559038236471590823668440583829160187137498098645301060351514927890671953981057648427707234708400272044589702228039738162093739219756224104093439952085851808926942333871247721943363737139598992014515870155088608014890075977505572905719630528063074608414952489316175012722289237359996790721176625931635674824403725690464300368517947829446184211506975363399467596624639355208310530774771266752412227531904942968093513132259321737461551717255982935866674783323650207705350233786094308014998662149872539448984401668842269254576476353653541734228009383807826016950049745300234341926315235254875874189452110211346445776030889842178892095960833262893181019477822389059807401580800413549290457000570810928237737022656581630433689497066574883130241814197813331814328349714158642151034457912160930786237194306154942233473542956753462486757838245903887090252014708680487492904665743574684080797053214827230880845899940098767677075326932936432773408044350400860660687732964209814979319055236769465052329182679051424789140419032324318234131349307872973919737521343846636805145797067000953893479301284848297808987518852644314664233332447651874674854670417804614039473582504432742136407135932356324547938108173794846317437103496700033370659703160826153913486977213277533981939974740018027542169930953073066191232210333625465781388538624783593482243729066627948990774362671748648382615868157758770269103163061448160168184895672672066601222107712960149749629492886481844658249998232032993066056458795769142060495548921593016391635008207073423826280009053456555940600912888704879668151523474934883886743295995316567362946497610572624170016865587753077079161693606072998142244079154400418354200475574412395129413589673666927279333202888922999401532871014515928189528049501580596473146102858462331522971916441847148780861810009998824881426409837528605691273270935083315830194189283124742111561410419298640969863108448518812016147585567616487670146155281186561106600694048504643882096311694384391729794005552652776877619455572672603435398713377275994619216272425696466617662396835434344491216459821306302609706241321754108849237296952822604605110725909153646592477000982384562039168777917054043413173027766823699256774590766752729525435304828952275338607942965973502423157577949854317249161035451702691053732385397398694734596450058851027999626904075829541337840389688357675499470709790383088815032241435014956873285597358080739736061732610580312601758153912112971738705546855966161282526282368668137777171960999384343760270220304842653077601230640141787106792440284471284801863742650907240714279270644295767012564815220998749762052800495738487481072234770738083507106848209016985495915417530828715328980071886615575280284125356856855184435401218207554721102121083141642340597669203409989628755424909237732692352944307135948267490209698754282060872611369332078864326406054268385357494087754341379262139022167480515563238591443931986500640077875577484880424868783086601431997390190443199200608241951618597718116436552933039125716548750754226890827275015242045498424447519326985956610802969314549452418282429792032654516646145416375654782608018401517615463670865517294855232419205933256164213285935413728877625523408835740777249365784632753467286286102712559101726561516994384434179360582586423762057784391673276854157092997025115188789329814646856036381198836155249024378073383649918911355636985178024905609421015081385286754724469803925898358731989109385609237456784128081876961133867150860517133183804672079500670858392307650693832094523444838678757012082032234356804138649950201496636492716850387293878327828286715497581134356451348903764521964804505196544230447330455793197258301776040180470593509028967981112947503916793915742489912494888965181494136008245836956224118090181092998364668715507994992883752972309823112159277248884149628355406931542740340213554537804386183591131086306341774218357190133597094207498201968102992361580334623811641773682963062878438599516236816798258373314451265203197726642793391604615850263252360365985661764486315592975136491786692315329280417226715451101585038435532850872951622274339767576611484194856271812219395435859621539200879718970455610459360662373258843736131875351130813792307995711093629598669235629211453055715954054169718442117492718338125060782445568022882544894024957833928440244009675158450665075345614773455265984005313607850785719655405762236713036706517120010960939324367389919818031044051587417035050663460021696403126005684421241868627253732148940147300409056818617025178793005646810621297213238327962375218372790989384091784589476919619255487473408667492723320276380116530088333533851796202986676309640434943730384288314114955078793957659365232538869947540721239891135576656368939750821908037655156007059132450940905773089329009388109825041525499586864455800536741460652685496750340418716860558256035783789071120829075025499624554440903040073781430086153521022834235022665706376585890424634615069179892919440619924192890368958914412315972862426839633956463402936355074748020590591947251063447116255937976244901919682161968536125105641314932116099288999316096471072461979368901280411062246391748893221233287198118432026231677176504959588201843075395179766304827145522714743096151887005290466352250861658200646923668758174807162389224779379256237954115431701457358739785612930660814897287989408107410737092772227737296575434523767461053814338552553252197217973661902800130658855730967672237184844838446515269820871090055880734593123242597851503212980274767083313657597066650266171578688675978974151138973576325764381578712810464655750473564596903008109927343792575288648882035057087729696415586898166839382024990276482069266223992880827297548864251602209825091034094856986122453998304909891015810217443415702755036736444893430306368788785134553690609345337838869441664089791572090043060181792304670880994526500015084255564151126900911764106076384764292222174599463864892240175769876209902112101741629197221491614351066783587768842314892233111850586860013579124171821669499809784479492973040311883661481718461068051615644617964374896552181041378631625515205424344985868221358887033013535763697026253887262309636540007817868497370309246870969022607268140064130183405838994291163755188493468458505757019337996575714095506657702190990773937995370475243757160898819176092939523163162650034234922352040613166894877137400215203302156698308437121259601723376364050427827030892224110254117065117946022956679041537097839999830810531032693092095344127214456029030280452067000369810053901552562941209046496321671522905296626892388505045672973829474445469078282209503774626341396571021586884890861842481519754872401742861182644947064800227747013195353297135861786561315412203119453878203478000988672241444627233488451811400374459126724976801148513032332300522989071375101129179418291802334614634611960884279722426739308429633708448170618282248050644967101821830884225502967633582000974943389275700644842936653606925785260146505587249507651097392104277246251199753875503660055586759122584970630436376479204979641945719685769850769082631450611270501205648595181676888138407316922735716307919002618744337233547427637329119468737504254683121056069554639635471586377780882127538203035222784086474316675268527223000279775638844119707746481276732084124536699919241120781841569033161090983743021547033992134319137483139209075083150995263164003581817640343614455859866123475695155789066875161033969317805747382012063693407551470442700171796417132776983100740615536634569977241436555301363465805564435516538781667117502818901801392355403995623883397868195519389177921875762344781418276719175675136671483298621301151808003608777935257287794570057648946073785745161888172895865398753354881816115757018754475145383759247817013846116765017474019261157051766117715461239560104976292353122905885451847830201842597084550007801471872014893350297457316270094146732831092732141736204973505755458205734001740681779433567797652412861324866478367028008529703314411658935257206385481705613716727313227724557095222621605010234831720616735603614886483354216037847931556102052740265341367864625473576716702177104983337401333930353998131870777261195546430823820594343553236959536566989633538319084945168222039054414015437041007533364497052982852790779268710570161394224553488533051096776531561647226088216379892184637020873618558355172243737599087484862233027350161956531176984133903477682260411911753897662460740735615839153201730413002881723577695142007079147712279715765400601175843960434935239097334143653642703315082083376825668764954112582051209228447743879948487104187993761639585290596582264983934571293620309019897689657042507605055750659058892785775299927741886760121492266341545217712405298315848399976952952510273793022579220274594605845855136328148462380117298905444718691323564065285969819680746085756729133821006559651868732780607493250606248588677961967295954539283388330161431714274679200732270207473137738129239760685316339301863890145387210535266799331449221769782033897079313889145070744621344673678919327197348866005944602380576695832761188150718885966669808906272126524027161772047796186119689035535141625081228700073619858679842884323791147954843601185534868053072287288684694050266616144029596642419490932316032163397477915939357918384446441682118383903928985481062243287808932110678341681131087062401658180926049437978445842584834836538157097396345075004855772609798908594447646869286442590539459455715267933388883811932512430445512652665836203981308824201676977671963148834759184684591297551212342969424672486029216111362163495540441937478719537170129994865374525663249439139603099691179626644027942629224649007428194413338571055161397662326610199096610846323097396937258047950403998192929304049766625745758984565250570206148999967269945393035568560048340242545457100115611533984484856904773951245787992559260466685908949610142787456440915099971152517850798062598843509790392401339874311642191361514506353489847152112318871378429820471218551076083597145152996954787664594988581887848159074953103879550654247057187712087283952203475716450419444366676939122867348055740464779138092519730626138652554636848538778052706452276377602845611648858342938758228792083175535302936699504904469712281990922901238291116919956089279472888064584310415752172586817813169592133785218589105891770424904182105146182979258176456339265591748134476000724638834013405113576668387707014620686801277394626211652690092742577479697965528509735185588561397998922577272384606257145590936558893765318669150600277031257861136752431863424168678317362715931788720656847567799510257390551666815480252205035652869975258247393251098287512756833367610779654520354676935232617966679566020009649547901851488334337832998391645356972106999852968688280548878899847872180472313106249321418225128812580561423060014446994085256361710688678427018547710662001314131889616592184913301696784761876413531408236612431963728561265449507814652394406363055823707526633442759049060144119785050199845403440858319196624300974855831427089816303350448663315510191253373365021852763702346523639991049715307103493985379597919025259167023439579408889077750790864637192845998578795547590620409935928126193780415075997495245591460314407914040324237541719571142362389794028990948281661641404930802722736824193432678519268655106871415630009282054702532613681767323292998321467736378604796619727763968192038654825824318104372196656287917130419116153282823937998897316342879409815283476282972992766350932393307870939795444657690939410669132850377246587113503753253749471852944748374107204081322283563063323605703897632787394299808371863903123445176472238270692353422946478042737651787197410331779844540942944141033053915883024891580900686099602797855997746622941801934106798778648073115018517395481729537439899982926711759106201698535344049421276964001654584398906061360077662988817341417724783585362705475705131017255068611429332544014144974907339071908117533827949835337474354650039117087569772099021687048481823708016581860602819933137665326580763087120124765454312087972308658570997042412878780969119287683979984847135134042696550031826098228145003326336035425499417451190870623852333115855903407426726666419899005456726647004207975228463287544053248031882284451157042315303348058933864879961412204849401114743508417769735840543687003876159373316391872514511248956537719463014369049503747162455006264578155966902344434572844798021848899876895821769794827355003631262836653898912101854146745045298130593085362851500471856416417719060994262493468905822092537334728540507456242261015631533843867036799145974253618733378395790624381196064083192772594732975102956212046959417323184181100338686550399608977138462411350105174837956110085059931165757337998043180523450832425127357749129874438364428171611236286909901845094158674556248651602137614573308493975670537007568106516185145736236056988531380539926512867651926559044238754731494388740968320189195029155036917409591632021728646426855679348207264963245918551393154790119417516892251327813675573102540556478523820054470706252477612765743832971588074822124506066797249330229254954022914111034684565997360235346758062307651093850620297117776434244769513157200346834729445275417634535984528873821622630586162453050561697620301094694499917341587742780750684390552602393795048355067836584949445811733061060142304099797238052086526262376584869137205010217658591345984495197591191573147610564516650456078115845098572755248946239297611075385060241103060082901470974586720236641870139678362105892902028625405230234955391034612496602716230995359728934634169224524107307232255213371744074996585445132187434615171029295903786063947846377555925910117667642162498365675402110868908327284632737581846549608957769921693425989249428835010365258617265605092701863339837447008921133992206182216279975167455577150349015102973906412751202980909733070097909017144954041204325776980238382515754507069305101337671053053153934546771802289332698342341647069355860498143748882186009604079978952696973903514093859121943387963971425911074359527974724717089389169860876408982686855115028276343665248794003744594589151514142791562341397770177780385641402311498336042949606329887529571747707855401561483166765459874200011367605366917955848857717144166263782216528028850692433294677727608637963105581585500050469668812437998719496939924491215444160473587729610997762970772371268520956755071371232412934925122143105447511799713881226534007870567222893442970477972318938842356006502822167833932932621093228137741211668865966086708198255131111391530589140553780661107267817600913679544675665186235106709011414044789707172154437211459018239958378478108579224413080677896562648168399240183633716488926852834176582029672779135318753886715692356251303180811440708901818457679680361587247155437661400268768340316695998270008598930357527033400687883539453025879447758337708772104227597195917684913634847364771020380800188253031514726519287629249100047990156283349884704956596636130641520833470815770277718649193885184796004072401932080304851258368401462478715078413840755734269595748634422374713054519203982884361627693789599241983377978022048263214096879132190193271657072724491216697573700685996270464930724896458385006589620735388982830932352357260823205378151984453939673379016583023339500061244611490724818293336134983651107807830425401168501177875525236869620912083943305810322635020544193239488967220438375477751935825168623962471295457690675369220250464479915147262353861708148761500451415330739685175979909846371202971790090392105933229694629597635148335375021996908427218046665355565899424732808563792795323213258970671019177727273611251060501224998825395414684207515883950918967012840978222578912820984004747258792484751936353875154221982425173605598846430445960222277079462194964267909706328508970435074090303484188716552761053413992217387486157749170629193132770107612634235241208728438818546225590476048300871937212099285566068006792095149836077028040566674379685387816148166140683166572146595360666891564277012291006555867765521917234690422209011253136699910811139111076240678311288552436947383424591137527308006060219695277630360902192607210586277032650419032730988086648030237928597940535186842615861086390290366039366986307838514641634471319132505751812164299740542023132035008482679990216153631347320220614090053932266187857899869565267667178564489703146653880998237712045292378397604639196291276064572272541217768392550930815544389866996179628938732148447181150016753425389807240220689698337223692707396792463115950910704539399499004078408603282210156678039122005196896808013396457887695003199225702235427449149384265857887901554118708903518263708334275988587322196406324261473151374347889219481326701852121530667968722361632826297153095970613126766487774237413426552235735776533570597825912588654285725448663474477942613095315162976125539208424159708273558705587065086342232492142798869828625467369006480889853111330612016360079396576755179975321622931679181644315678175608304932814674677930349213531322422747039708766122307076225221772108745580125196505250844216324583033503312341186017434549621663346100305880011452197247529321713367137365836622755852127904110613577598897726930149159956326090640918444651994153766812794322551906674656663148766555992387181571519241553268202825057426484710623372873575134110423550101028494165401070028669293989427074392836021942400469475980420102284996081963711774291040925597375402825300594013817743961607115979922443613784759053890406794512670487571904626466650062990162764992244145528844726452310315800736882674707129605193262075659818760653137009906107908158204193102788012075589196605827064713496264344466447841354849802324324263129463239010141182962414878223406415347602249761522163545478524991905405933024222238043140185445551859689960221651262652566364561080574559396551154696907940850906253028367214042572276029470984410496533843930431890211440367077459102171147176723214608253175442572782159586057100462811632438081815999570797837111310414717937571415185801923838707110722165758986400778840935498262030743638227674625991029650378521503183012130409460837273282754514642875272499547724665742380375095509490274297831463358890751721541242764141679693813624448626635963333590119917777754275785598378907886074956001696960008317854878885746800030109981042975086311261088460323952434612212722750451109210338061347723294935280773219231775058557300897754435685654494844798855726309974793652000665708173427079788571025445105264547841984988494188629718253443603141921724486559347315189540560472948064909215808501117751113340349173939816288263047456354691560186694578562898721615932493207383696554627145827580564117976969544640218435245471550510150257750174833041638733184550589559398494881291780470920444610459427648198002846555587525688261819798020153781902605438484249428702484578458541963271041194479270247668487587477375146604241094526492142731971232509126857731701547362002443084441812661338487229349086523624102453270293679962179818020195888292823061154612142465667334331501961014559069091756172640600857985497213418135419933065476630962760039691673852432018754239688539055073945041221208928933806208662150395768375212281566801516873433959434966178199006635040041864390585944879478854653988337048478192898311339008040806614849454738807298887911366310314159390331790051655872117384548961098310403456154335581808661894916207700161760910284508710319257467761683797331681991819978345353966016310456280157794878655222847732763393109355088300444435480019063056505660911584200681991833234103727547843018891405578689770293334148540920345660149012283378551529951574558814399639396506057643704809797598064761117081887665155949794849332544566547700124666076221887327053538083985314423173831956052876691236882200234580999960338656508708453700238988606695206565548379490261456618689428763558239160969570859580536411378056466424781107474547239904437526694201450651394920320758630263972477667551249473834744274626298094052459773515268493996878775312175812433987479951249020134325781242991490441081817184382875627443769223567387574246104536218466261437264568054828152855212315754965128848436736233772305223805775671765184110315026841927994584352442228346673195432106556743738112361382920646927921206618921581478701783301520618039997127982269399634151407185051125030624452747088127736308610794157601630530912774051191009167124345381017137518840469255194409898315564222006415263571918797917629725316942337560580197979077546870695843821033917081033056117238658743228576383602716671430957905565820323292300459603103648000366924280883979653197411116659448760549776775977690665500981159718716541773402646726745399641720203266767044223913427704550391738937784706524877518231342547726261842435396087915987717361407021399494374322707343511414220693108858790025716976077212040912701233464811350816504805583018545450255229955561128172562871729419728368576835605049111115470529127816825502819136986850843702852341748567171567430419865143445270656505841978239930064925730764864324211911673758342563722242698296870985749727411796720831473696480694839754898629702099007101402265440785310303891657002245200070490068021639368108078676711524959948972795996525507795139890731151057874632303406852288792554773755015389197715852218641508725671416591687471525413017768189231124470050981724118297802667388957771493746734717246253415210541200750449103935412853238363662475183211899469486826732775664965992187245016125550193917808490303370865054663275855376013206599919750652481986538347474276121375098958453985042387727670804622547709801878922080638363202749649824738521278877706972299289126899863456861773293067883382945178373470669457577589214269944093770120403928550104174166774763234058688743460283073892656687347054843271988452850933290537107929835696690980391073680846346569828827762100451007003293138914636935710115019119390846868127546665630225225151100552097517203276811579713977459103117693232315933325672842487254153449731106322334004858112554110948854962779975302072112575497516852035934780580801500103967570286406402645617142833715343115839952043556196301863021569633667487301292011471787269141646264918837117267202596735494123420816529278262541903729734293101782040259431738417115917971949591344299798355998725583162746730298734488515528690811009875151399852589673940678350628913928899640511281194978023562253316780666615856341076982566533503150392472890469655843880035453013970990893764046742143405524576900274221105491165067247123234024642320239544980959904385944861389000847707939504798118734328154381313759774755706996486367801351488178527265786858118859141897885326019087382399159830869242484110495236412139354128510299529656143895936949981809971445817341259621953614095457731472233408543440216241050355968361431512888853302839966566435626926168215876611526009105780017674371238373729675999767087223453886735969949387952937558063476854000282906081496093636013865089104018380198446258752388154535126935525527999238994271926142902657374623346872289527792704793730613569108325231852581180830177295394702040343126147509646216691888600552910684879842972215638653565750271499766933821238095276358740194485010803114494943475499060597985363982955187204188752506163361351155877004177687313125126800703575028336099844084478572798903289805333024618048029064602219754785241553336462328225582998661601386475394527970011308671957622576532444310611741340043314901434292040075859518166192329809300400150865093530029714105493816332288074069638901157620027400332475642834276545710011743787013768397455994150654495824214961522195329739793867064873361743185591164535280849669471625068733500576172709060670095614334770937095080295467604007801844280287427437300798755642903669931980416752048889310597534654434918442307961060362613292194596500258389062545153922788380507468078028835341435302966509314472064995008280559512516032456181511357795426430814399316465272408721370339975882481605229511829646705911084359277384549651755140333812242319537123267308542519019249557849751896918889163718382292026527152444797947559384269598959538719779901062114775719943444073247736286920338458133305728720228409683719650755897531291756415852593302659185599921908144576714058147594178631383078851634032388224807776633000636628366561738626748449026940042455907951101430932695640554644833636696557221447932114822016914924966592964112703857651723905678300750136597624035160543361210140278595195251367958674459445498647129684246351273293001261439188806238470529303708122463380219536791063299196629834418504660524857527921967043168244365150842503168883523022858539252522326829091232189822437027590787534906462533979646361208232981954972528956806086074587047434008378161199332212472638420536139201510215975422127182082296096163160485635613108806209000616509358727725206990214789389249298091122247187917508948096424473830839931743877666433943651859668998543794204875684648737530104280262752164990914281795760077978158569262872654183743864945107485971834322642548399534838465152227487076921963407872674777076871010435608825363490374943253178118272838912009057884967640450337338936710044294525815068613337962589252860782631397724215704389553819240943015547394390475102212171614285827260595667736428685075121875948788945206476318925756148099942619897901579208023915130028302292168608682641860011228813759269751759091215496203673212471571717152363336541645021698539814623849128584013287267593010568117157913147784398854059109647675350374292177265072696681488858166601707522300224182521011070343163403975482706676700157252932040977183613776763590015307434993535966567896335749364833501904664067917515954180970833662664554773984138629460608513798585640536235208256975878629237065479292501650366540434718557327251876071867297512016852675271112545076929185898968900263155890951374337354435099769147618951169485278746319656001145253317013430403383099393729737653105956192622381298233809131822153344406932153906213950599594984925662376335678758956506433272147993570966900505873907879932590789958232372312617701977758661596390639180217273872942568189547690176334683799276500933381151779339807790471486557243950127599654590144874699055534331771704657486706504981578281828102413170777521021485032888518103045515187890742740779975996774495038360174550569052896174559401396841142337433810817090868301598956333305367414309721326474135681572741164079472619469546261582022692456153470144206714726541822627908853415817071008608725145835367606291568022891808342808138132012071225177492136734201257097619822779528557230078598854379375386413037712801972918031923322815500707409078467414755681898849130085078999372213229876653984859362070321813777422464760103717765653839102223206392607518625612789514901419363256810894653074499704019891557727889692339003948540960688021595447689165844108773488443163974553146928828759844625143509272711061052564382991419827086745905838502064384080688164530420769828570707662208408806631537415334625998911901324222810435044399242311416286491595921170506763524316742490659732476170470932551303008104578647325563200922274367252900882300868348929443801953306096017822843609971251241787956703802918586351176020452304482850046890321491481710029113733093422931839750754959515726503274060366549724403562968305347809099568154583881767592820207418748698550349209806567971405655593934621988481144699536757899247383137652108624840716168939875225104640905360924171013663882766576087752329654827003967586759918753438681555854531724682965187505473759615374985297139130418083738582435365605904494636049180924526654116827922279323276051153863871794162979873167739517990822937870560477292126556064412098104870868923704310930948413840655562789717656363166396674108947025497250359515120804384504368301472031476244798388740602530101873044272567271180861987879237240948622536967247453600349391285796048158644643147809285797888694999309845368401271334107916426327006434422817283917165726466845666360547204780177945108349996355371399049231958584118290667843245920403282400018634797395843129199929411769584592648056764063588501543420390089935299140020361565990649711057350007940262346770823511224338498985519096635916660184423809942598042856197699120780033199087575037019472040342735387195972065318577337504211356091556360382898398033626406096558411005788118681900766419038692261568518910679982635707819254274541821683732034164003506836169009284428553723202587748959676993074844570058115871202565167056829261148512476389423703860695574202200155166229943783863229158696500114158083143848250496163565318988186092755969233701380662158430687809860962835517781738048243634618418133839106302737948582597338417050639505755032963943463597098771239473741214728936369904612738613509854416850336074488886598993238468925191340106037651018945393925649181743895246957408348771970928947354883303712878144305948556112125295171305797864306315673186400732521390651185795766836660693867669936710019277301973696829205786125694075112579963999245635730956199994171461654103256136293471394041609978654429804266600736518028224088770746221337174348215897107057139284986693640776796182311145935871245865407457935908558891929776313746249610646868294602048911743345461370016373913940100422158190427548438246933701375436697452951442086170121823059207277311763958075513916637592335357329684570539848281034633589867731155322523698868461462749263051827168214189891423126120150439388380538722022381049696651930270788957495346192504538474906082309111220782748661003695236279047128705393420284956441257413426053934003565716761248222985310601224202622043947509371711979239338026385639200213889573353532591724557221785381205098274488709285099302316723377675132424164509418718696343986208432436639461686880817583845660950284911594164529519641959259112172191667221415042307635688988550419397727405436064151128028013874235690638946785713949881478141943957413287066077477895481395077498780046229877868750642363018612238206077399772054929083978201218313753617588362033289857314497852791991532475788119201398744129526003507627318457381883207409628797935230949826693598033734861581697238674120897832713392790932595353655145521150652294511035092226581286472014918975147459088543976515461060585930934412729180024087583638328416666799788561986833591730543330654460742185474838553904901189830172803893051535766721278662908873553883739952703466486415135938735225528308805827496597717434005185237377990260658640928460193815894094151801730876235200223849743611279655486770951352356066854320070907674700032556891057900412203506371705905509722205831166508312439013830182295561322140781494906560628636543146060443298411339743348725392366374131822575424151566964641076007055777190747575685735351431368117311805325447986193847261396629800480065269972791894699955248899641342531510186688414837022944993645889700718131000405358586329788368129759951571944133589605637394132077084000179877844595774227724080433067296954419498258699160283130787976576355286967211266103975110273932106889631604183490279215642133261860066587384285805943665155787529759384452698772259276471561591366118180516145953923892583730337756485041379800237172410007908052904164026390388815841671683774930563622721193148665455439374503238924768071049934683425247400798941924050128847893123396086583140957852889786548350883070238533702646390794064150825630661839732616441352913065222886538149270595730033161637906370884475006921523539494823615780544704198050763299326570118715627930091309314485450906048626634454113942382361966732236919900358377426861874732794434342259903927737852196732515798340780096602253021205233005799457150032622716397984712374416318063171771027533670361174259015805468116106502242600332894068958068095600750483840106046006669257153989875069813884201159018571486768818642597945066357831318176900670275164418562079218968332600276604901953354485358905188505918049423977042560062128563665769363545396086238466107122113268425687093049798949182868801682937213308351097287033069007297304501363284908315936935097347625101791592974641844252070771322098306952657547362201102467427585596162481544765593360936113901115211560932541952581415225724989948577805169955679844681610170556154374417327497344086096083146546350794324186236137007315398412415513442854516182208086366229580520388681320445388146171912003433554074419056848638639874461435919953345440859095203140878437058401252334254325287190347288386738063656584128694919425010131154058130315700919955057556853487792658708320795761363655140396386359426603700600612076344748859258533991631964204762057278014335541924701415181046624791309252533952099568476803402741570491885349636514189022319443013509649189063714245852520861348006548703847458940584447000620248993795250307879575785395010372642107792360884869289465478641420123842243423863762607324289815546020499388430891431028648423058833148464322491211994368940689966759084179038887609237859415171933597946606998180060607968351427793092607710587246625538021246459896747699822410702489599208831036296814286935482096063007695676889941553209300926402859418318960986652999213371074791804370833771914145500305622208351903971036844609521905154092561829005775692839947891209311376908870833957138764222427027037906250688354389956546451879342392777574085861284108466835622199023640231593085703872633647022283674251154088122576897067447311584712712038966256946867354045857439268838562097479150732085626746437794920222476564905191294494848988867709630758480400499459100775625066255948577052598857355262336209028571659269692248557145657721121176395774683164966781138421812894827398558456380324317696823339701663128996718201767458328837990960276998841481997999564583069803676650512781741816310151938956787870962862303742011906283971051205264300420017376625689288554659382715368280680828688093848157751505325410443680952235941687562210658928996358593435828224088176415296987003725457224586034737529237798171605692186403374114632541611371338703569557830205732370100619192789329558885343660085106218644951573464643488882584333904024986241929203346209290123111355397378436525586781020344056441749395870284674262649571831487751088458500076557947947637518053165745802756068782174762183400213179656553354081778211515108993937923594066070433426029806904587665467598471836963459812462364046279068737156134995915437047533696011385907399777635312121960474824610282443249559814871876280436414237208558262424127288973805813556922457886080454561922512584038546463752307119536103994614310194822324898658897521802091670115865312012322958447888144954914991985094676462479571646086224957143645483336162658176484173440665037448771652956768372149120957713584537677817135596725975747739543257874465183985298156543489178027219039817255500833835188474638977217649079216067854537639212386493774172232205915000576622805006865600126277335119988702671695794758063086033687030278075088218509606905506942207243724659088455214638427736860348055870568141402700554550428801772786641118960759215475626254814631968696781868986026221151733554331588425864485340662105300035882318999410600697069914504430224522829309199546603462728506859665035044451553808794734327671015841823342365538156924667347857559209133469350724327178776358990235247213583539913181021302732854700653956641198508161969809855963368757753345046699178201530978870261816673547316924016424487856450711184275190937787202273191975289791555160744722448379554725620926151601921029347003082602412160003793171645092511443869174114404361573993023499496018852793148248708526143965373508318566186801840848387714643217138041417565354257719871121576765149460919714077342530376601246789076243262211120661783026002907440497679205452187757456792499612622132385511860550139643299279192278599924313779785298262259134284116339483311234206731558304982222391026129856600127490227337033777752238823255909731786835025219996427251572542139978669962978330142134742566838242367834286588422546359159315285619593973288070490177772443937797121496864249014527446195320076423758798449592533753682845371792823365041849474107628639507285007118615852857071203625894783233499895093337723383558914588095305747435382403709557380504378928568401630429381700648028925556571467761603206646412697357196828718670907197597762696092911153298900127876185175388788034876648495670637757754180836023790558211212873406831982735184759643935804185034038837641029483387166006429491521816838491461902147492926418650832926788503537860764245199066164115979590249603507772970231749171771598720935311327874782094976728952512365615922509656803956084990648279699757006013686844501976071759433543109743248281180442632309117295551767702243731711685577484466335143396703241451379926687694719792218318205253291050150652908632580108001974461551170210456371546440093929439196782584206576538623896711694679237182471303319257192191416479882743853818503131229911840608748658417395162530045423188411031338364249021893595262895932289266982352564963864316940883884042301363785797086122449300480458320978524282073037649594087507448455501136297601501255835895043531895040949372627161995784048776968538122880604221908055929550183429535797905798682414648305158253194247810420750865927008791313483781983318686339092375802563434951875568500058856629542327632630724902812791022417690416377021738190299550865669588163749582725761407061336567382163729226129607761879880412868718596529265320465284971860068863581495950141471858885285816218825701249050358941219336675347229358308252970703591511812414576021567376294217224783506624536640888632798197907377727948478694032075526564491619467926892126349714711110266878854350694658056669752781540298899801881744108305894514082932435878384106352177754456966294228585393592181646116479846086120006027896125295703435965271186375530064606427761149765760326695457936259698993498131383262859651799801253680240904798228183313581867455428764799518503907356311013503749247557791967392603043029019639896240015910499785678407868141441610287396051213630096198299719225180164118517498587442768446125180783769568357106286019964440161286169629917722001215200974021052528571962581111386686173270073883400997639996716485124424947493757709950154076899990547267590300369837712096321775465064677253906221779475471457066172193470599672523877418547730981716986914947042255923445867480525840705220237593152293729192484193214350127705316566921593139983809257159701453981413092109763594590286977131900336370800915960335632402514841568164670301686605450929899705711205492101528027809572741929364442853745329420067995145564810433025257169709343557241834072085266188946859614920451503128053579043763422851040611635762767271837138888130680429108015093905958314419889362107425889382900355812490204902762182227387962770169712234035031610754868222751531689401812300435480642688732708416384379505646013066823851260189053841760125710117827517902411259256990729501507983570385080690881706824591174238716424456169202365848348342831019194343358699353583163228829414610806073059207989147949138258496564922750553341609001418050653724515467648649756891087504061769881620025459248536850695535186659634981598447415413540948428200545409528798148149475021298058246312366050105262078396311152182353250444214627902843917712778882338676052731144011037219728216572233347438800588638418588496821215525525585218971792067929039416003476243546639154138200448305795233293312435795233884815502853821000394258681674753692649305897356132495187272159374752791968543396981637027963513700503602226513735902265330321385195190853778520965625295656699573655614052072766683874905668437353213100664063655602851260357624710753401996444671486091912169605789630051084947837588969457050287595259747258278691134182123677762367768821755293600234097728160995154532261659747049691366958318910483565339909655303741068264386000245217832907044674954187158235503851810007560588809354135803261836827047389723799979396659917664884540493736641212471343573480101809919756837026572737173572350331562759337868323668373983861540148453548426666823615613100225942840682811256740729497569818144800323568430165264910256113823852460315691707671042637345176272263110320096708188380012495131034455548024875671809738633101599501109776682101637001228311916770748605558789276744123376310901974507555235406497061568904696584434295526576037985970414077216033582547820302850234555927558081077793947025293439760896241281250363973376425531295252151408655102324627286773792038527425651181020105999619761694723318261080121556970216541249401532837509873193568840092929528930023531427328895327226226285158251955964637776652581397041025244992275167822634802036469021062682688088573024933865386594549738168919493041813918910432369406931243094949250226012569491532338511081629303381439804589849273269428002689561961378926957449931016560669635211863525735422540940334517486951639529937354945908664761173397650236774866743376667808592654281063532964329267147268427343812396108146101234304829855395874849460686149106596612548193566446702554015818829687688311432233174090292761775952497165356113388033052375808410702613216723489577622360869811033088084792244416351512131497633509284006321870236747553675279841020743625760184843813975428499798056346133833257579804729301541628048683437712137080728406093682462705433021303513742851494969648997173633781909375296713363248222200673301166149798615780330578118513732146722188064812426692203167624558618879630851079133115607803878487645402911470899158615531048856219497934532738435262272811440692124623680168002315639697257769650633133503971158739889684549372277838037838502719225309904462012377415206050336270716614028032360965523750265592101022923354405291707043650775106310399445354302643730026443438350219495201943705918018064682796688646503851556804331356003225177259348786964363956288741971182669737500916690802296404237249807378793901959656262206788569187530480783243545395728374772289894918147732626727346130889646405922916042976749677210908100611184485540100782827301745217145618359284586849984463738349821175781857347369419286937325557954003474109577129341201370991697961341911263691954498629878041889835862191831370207299457094369619826763176912803521268175351212486570744817700461247897312727251851754992127407218226174866097261501091505967302104479503769128822531520029301070642514998106883969109916672118081738540627353057871147234867175309137647008480456853576474698265985655893219970757921729800140539256312465082469316862295545397819515650596198891085479846661764102293172234197764916989884088829878618104576685418412302844283046696818433468906624537089713357116024927924258066091731262581000014123684113509315097728097727938736469050327731587908073417514841556991079366105602873720798079795517225805602839385448399363555454611023966252375812084037815071863889705386255630098740632575388263527275292876788499234817976227343482216186883030172315713471277392018851212557008133711088336205163715973275025918659495365411186846889954007476729271433687946489490744690914594688034233009878226856099201438439312494512986462548751024062029924836926098239992281776011845339301519871331960639069637884778315651899448239211249828386980470211373579156525094877144949488172359854935507302893923106269490123575052473280921220460113841094924676443133650751740428690137975731804073485427679771829453830715703827732386452328841310236348682452968879903221889026052698118734948700663583301687699835314215514600799762593028628779969508778876256167054333575255548340198693941640525178604670419006785470649046811109119507283347202779471506826182879214989386755270407366945640036729013300894419400292212770517171992439212844367692569931871503557413705427136420604509225331534315184044639223597663739329500863635096952705804377448073502391217946639536363943891949238590443683071741465144173525093410263105289992462694161899215226255746739882990145414297116360398440577956058950387705378619353716327240284750065339744616903681361193127414228494746805320224397945784630904851296988078595665954986371835117987172211280083893504258422148267058468049896449369943416055886311007240101429866577380264392525437952230596676208929504199969026031776618298520917936138551137010593516916373286878583249142426906694662544893774995616585425857665856437921119520851446136493377618591468916718908808274040928685420292553588489438494489365068985633725091093987244939980031523442019901294446641313832064235826229026349294794860866552414057232545733074157938039942594512494855589700353974036044111522755190818575755375450099799980105944742187897185591784871579861493876816643585254920986564553272293337102225940942654458183179314460721036623756187287583222416203296454254257083315916596155374942325565781877655898091402524704505217165607770208862135828484093801687668893530786839373986426215582963824751107830112369298724638401117611747514904754432189939050205131898687702916691208714875188559536343824333561476720061006340109152055533472773008463442416998065953569925449579291990791299045833074849810494558145711879964852962766581426697534728271728278409198483323955192443576943804716017447543192316594658414848069704397228881026458899143221709969840912006302705085806132602070122467387362492182627623624943017489439297154421307670724464956046742116619207348370477693028999188272705394549750739278426881203276532696763067609538819431637874649761057235725659611283743256919289136602473757101222040140125363379522767683046874347817085820423809859247550189965103880216699533993471722092594318948329532753791960057273287378283052466457167687734535817027384309781809897936069963410112744126129508931319978201958650646089234132891133072228533696613444745377286739476757420947041331213253984171947937174367235699267820527706014483837514727567313498534582515316041441866449128368241109940076395148562586246570569918027935883367845946318622665239200462052865521788878582673258918574459423093115181643229477598983612893766905575463407319593586345539862714914948388148124824937246520477931824777461519411975339459152485641547181509154479162718644841370358986737004453865428591225314178915416183818427180709702042225533514594701013433657318182409332616278256094176624529611529178117022009092687528857736359277138726824787542840472359540846966310641104254894053665897443460491297921188656701597566972351901070019072751395499356331237419025560862959288588811675318249316679095336289838866589472738560404988400680055631041871627560222900091970519165927141604860573729946386049211241746621479771605249844777854145944250512280672541114978240286366430704757953493684248506952093664809228721825320077030431384877563653462337469755824745174316171334255839401189139653546271081954103705981036641538729975170084815156559108134821234569229980856374102329756832867945517442930508795768220478755331629885135157053098343438570867416103934953246916318970639912612496896241997174605083463770499309048617535060263608819299255769471581742981778707438867672847669271566131976102696840226938862088100122937548545081972796021962705723793781493981479534756334305496765211782014813762563416718042568809755055214896629092301800268034937224318014630673732557851187069653222039633182634826220834169826285691716017714713497219793622422964715740420254121202638253567575430391106000580368635109775687149115420270371984494851098342585298909234592966224852474807996344775542597409864252409344770348098605028093271760879736925597276585255381036687877303365111788900792280221361713169354639770519302598871634384149192186413374593760376052812510665494339911976842870266643782950495600082102062308257051248678637376431768337247304862762409428250901782172027212832513709241444822964341766559214599739630416617576222301461788528032737381338590145255767232393180767874586609687922896006573480197378429035615129996460725636862780696532208779152093385236671186490304869501803609426705461959029074959455827570221726684001325619948381272666448313661448464697691060610296533614113019688826384401196040268740841075606546906815870162783624243325573338920044053998423773080456214123711954446274777615781937696477840877422554161666539984269407506691179308215470141156308153845560196052187455096625162999340122410128757040964884899185173521903503565222879343514177212711829111009142728980381911470337088634116727087951602122916547958758436004836238074046068297345870679650105457995497273984600102974899979830147744146074568103321747961932167833611168400442257386042581439442585194974685047823025844589083489385326274128535841462027107854405648928286256583099387256846683311484653141381484301012141785042246354981273103209847941872185288906136505456756869896845667665666919912362059547757700343703174135252158314518766094946736842527562903328967658150162794597935435016524239179843806175405351018954912886622228243421232895290451965315173424623453548382969018958141705847187402389726519080167218635513603794901387983679467723306922379946554604839883873319146066921883530807383557350592785088497618769415468651325007628001007789830289240710467364319136642251890018873862801416477668410031738889336954634494232648678794126329422306562671992341497347402688321730600752154299571532551905994502533860129710899802288203147199782645029311916343608781792696890628685310286420498320603129471661067948508431491255349665544559487865258324473079852499273922968153967964235289550726256352127734155265902010260069802987796051875217754859343934249131039736845190402197866380104086248365975838726744385057310230537372354713211633694062411502071878490665320286282512445290514873835436627570926577436033222593314191087436360724961679715994742456977627734658772199634146681695975471579083507770799508857719526531819426298944376330417379061618512407974496308121016459383774222110557482515595095033367905062256098581180242919106579734464425172759491552853215709074649335399431282448504072216570687675413793555228145148044809287466273997468372810598691624296987762354774369149145968827559905923075922471343304819710083775405598571627841197467853282026106715836489233093226430823174668581230410153570346566788879985657194815176918460837056868955858716499416848632984544819211678113011217983275348648541866755821457444449936037854102991560918295180464050364421546926436148657676545164369349658241015323481691198662368289928899089212870614796089835913121693833487276204562261455744000124088804880281185524393293552621862582140489986059175255065037871979740189632938748771934071525683667219149815058050933171752091228557614372060839147104117106564072305620201539125931537042366688389898861443320946552182413673735229308691766386347180096060248692111763981722646602899868952858295530937661540451035883710694215080698016344747555266196454676659224842725119124495649481691069237939626819214632205963729494680350342039123851450611955525791533455071178213318038831446889300689435318270299771927381835741286434217413378715410550998099801599963357014916891423920723839301676592529629560174997058337939037829963884341146675187432923620991228905756625322306348514484425622766714039103982261963969245737996382806002510305538839537077478996703975406517288678775582383532166617559473390109094244143196542933914156056033457235721100115165345306089270072628791379417990282309687591123010767564775776956179963072719162472735051225985472088720610108805868130409612171163553421190446087221912831390370068928826862771924173328295621479868188456651865605828801992018733696602675619508117180479886245953843470196234304063794684398861197489534007667080801257547792288633540989247040487525427257171090836410342981025024313651808890392798296663640231612525884535143364970023850135279217308689090730166948226572423858516907623611665033227335344331163150339487457470327181531971286254305173701756457962353214012952881293487076501478651238949530310601382987615725015160619128808516076232983389669575994112019735554956917570537209178975090514554760689638627970786864241680054496179948592805471771750767108099971970964871613633414093251784954696117340416405467540420682898889278796265443758056877847336607255299905484257836602456008631448120131567433514979244481874746979000300279974797171670960390114187372549703730819451656757435160161435716497268677526744555557136205310034451360208119817176846514979015016546965887528524551829227640260266191253227898337184520633358873989455035293624783431696727721331875126458803130484313922774629657758924843386002526960623628803142670020376171588372713656650587873365544652945208963100570203266760626073950241951917061277085664381052957587108357205200550633337342038770562598878111643324563250743647624923014458530332546342066386755731443086984403299418987810570102413989657816023929702612715856256582020557810604498086675031157712525852261937597527972171108297938677961024471642774979125584350165814208694661199015974103802147302726221173849181802346984596973555607491656281623248191600241334629190171014781039999193604329791044789057808460807347627430115067853986575484327250259024716715466863699641513147118480793636755475068346077996557702915488349883542313297494462253684086991481749992711940905231166305685544342664698440591155383346034162977665114030420302644663188142884894561604572622652566712250400736493684612291764728936165800976068236434311202123163246297527584258889536913270132167038899650415780494203740616584286768752955407956395902686053154207687445082563702656915766352968951197586283158700674328494132883741165545433678204837897355219895199977129862016541359033331294283031583939980301204199689998431901138909062964069209346511805566593881661612150479481171515388758391075326063230471874303528200196871376661241444360597864177757587547784804109544426944217127104578003967603665396215806444122890046419717334858439425289511605179730184895209026331853494866592633326665909312386587365011315717277523659143892471486622336230242981266570758515478967714542780671489452404055152735811513385870188295072608902998245598101504604429336439432136694811248697215632778436479162344163924641109842974255630860910511024881433933814697442917323380888630463887536071137579387393539475143272424398332367238647112993490184858961863294020053556878636870325756413903661314935022169414088129809281592385824197829589445178266520029098566859382093918660563913962278854172434563201693207053090049721227306591354403279457715261756517897571572337572867731732834415944057360344477868610985844628513307100407940447819523964593821767011639654406485222323202957597136234251360159623976357717021656590886516667928740210549333291067185867175932666371103284132652330688381677697349805477872440050657991323520469917171933574028626374246368807525287205288706223670028712971080362102860770300219607913684418350578430832436802433042304652744177043049512594701140818003257884308291894631166024695195556533930728682654598880030375493190608057926889927131052331139030212105931910136665948647903039924265179960535692308480900150742241951523664182804168913097067197365321137286036820230041838793553992008151475047064959882600672762207003609683463167761994760147014117830093505487928077100066629301680044371781912152296966764292682508005356865941690534895637701633678762060460846329332562135725713823980788623575595636517742251687865415632722930860917637310015911442672088298458941112591041730875794288983409462444502325182923235555071392560247754185138875551318868149719751837251234104047872775816263672806863864308470084178746042140589904837632582586677031488438321810871488241221917140989724982990412865526037670054468542993803874559326794326118544064833794787385252507826712539990445612014545950965791477695745061857410370706008533693809485373108134456824055882910336236359590481379579123388741640957270760473306945657799178961281882558417991280997842186094819130307302131682790934812653080514204371592747808987414033221099511765504123507081832833433383177935113866892662730915327364378529396571111660081344629052535753598745008063894677233830832915402810520063920287625815729361985867727486874649196925262217341917381379415198400573329677302791714152365433410422378537215047850251703813632185369823170938031383522462053119937457400695696158389513735311313281211684543996787368713972804195474556981792618200746090823596992279361378743363473878449761713286381365554777856499778244069538880910686911127766484648197915064073612263210921865019415695276549844750745325475729151360313597273108070768608982438525627405927664996114548885600639195286864937444296048808483034980407605328889758075330625491352540832139981051299777010058797745544524765495535379182907088769243599976376076567821264664803795078223193678244699954010880804383209445605070376418108350366542673533114585829038102173471659475641716066388079897423536756036016162622602715703572949287270061520010753071947326313517223856061719440448907830220790161007761591793556337335330734213068133546657864225171632495440509882484920848061719163851372775739615507699862213253244925175160736847487488483459346504775336839870530162334986520355002464468299967116454432410948456928643116035090797335498607188737963879975080469305310640681123770042473829249500774384280753732208277064099730754045040999995114647589611050820550891436103350547161958044508833019440781367308567667335964047874722468287484441542258698250184243975610552803800299385180581066895344456564276517433160532945869720940448218867887014792249008012544234205192186429885884737521063014311846043846498845656815385367092437262979261950499516803541026758026106349289381790868342945072721078623578331923398839547597537002224036723606294556459899386163274153803612238876299422250420846349938304209723554261571397016692943904852277367781660563414055534291329439717441004043585115167431715512660041972479382480629441240114033264632154864277507485821690765087954762907217056206527986550193411219872979128382466636031568534898695491753665729224499273749782003956940007293886982553832882454121095087663960556384427226053312539317712757429857283668834687401503156772281195228646239760409522598086214049212824200273735253706700153042276331005342469533051462372478570574486645259610805287856194776717336257414039371605128269761960696040211142829075403706536646118574463636996125955541813712653858044731547878056238167206270519406332639923973595792546624209821693601941038875904860188970229030210978312953097298189615550275826360691316922641168841422769833351845759261445292684748765874873490013408417235399240234598927760157607285843808139742630637796216565504607353739016649295209398078496072948295196388623022750252153066248252373297513737587467780974655941862065433161965756618007226529474004535610532386917348269806199007795857017396509136818088019233835941629953837729014977073215532965138092728413402917199528030417951311737949792421388809954753591840006594299266854479805067129322269001628862970580413302788180786828255821693615350782327009394494775116140218154016253717115546821585074727899557098960519342364590472910957654893585402753321539620230782259055967487291940396195535176488401923361687630272839801930456794075453234147479776533258232755150106347049029908981054513279262277518295539035365181393153439701783548496698174644973725967787431838097129764539291133259558314788286328756921336178722129998073565944938982848818076234195855121754865592227655132389579751289331657484996056559911146115801292897862885290850080178113306504585206101783645109108878057510880666546874393341847359872379219084117968887794915814474475343581085618636654407466159139728659780675009879320122704082663415579380070171389185300851763820127059180642229578132756380542905246374374817823293855946024069011249745307200546124759011044071862084512760349449824984085066695573133346876027637965311386028223057026598867480815562666057326638330175128912053672233421756753872956089433016849055311098747433398728277992215192297234162371161254446286739897289361615867303195101511475815697280900330577373021664743972568866162339648189255506235978248827992434187489038604322223404608002694769796362976739605615346349460667183429084137018559228806027189501377745876674649553460396777311501933378304239303841955688294558433874949568854690109429683774138229297010976413108864206202468467555871387320652951299431434312150383384320595987072400865019745400367089965312489758002499413242926241426829686609861632163109785289288400754015753707395122787289109292686084155117949195656275812370136674811637772709144647086869391384119606624291595823340545469415138017681404533212962177253844876408819567758887025355338280873337134765122328360067869775214060840367046237146690368527828892516185302908141157997883536871784766361486406307780434139499873218016897820331275373937508944703803059994415970257046360797453383703737343076329142153581018946251392035634471719454339846785085217019748193073861219503540289648209759220797449658895489954896157724905156587974323933016569136102015897790986728013063099022424219102853624038466437925442774188464109505959566576035943268933870461140116151592637670374610062398164401232287564293498990705576668373697714736581185689968611010373245273181846636306677681281191905811039660552767325715954848714823949057732720401126351716541568647197632714633393099274339398591214991666951297505410121848380682928837200277520734456940190413409205227668327736585861002366625464316816738728825165095670786237662547797625456236405788426799961916675016496752057684777345123189637767223226662477736758334388997916376543543936657060985904782717155927651845486706640176036121952849010475152372414869250945618331006606245872196148789672952082069012310102471492469257557176392567932379278597970040934732042780079997701535837718187780280481167362788381431386182101686047134846741240149305427609015117795805640906794212296659083704624367443338677771287131479015171605926534749960235387252643917797697177076788756098618290492196685785256929826566153350656828913652436196987674993640747732538968071781349830867554934761744451356042551078652466962643929952293929752774452101288346595133540952820052574211755065385886286534350993749892941925745418312611093650330224922076985650824877236335686506145935923390403367081897181489770018856392802526853696266079866854721600222087819425872265229655336494306640616382091452749579968680999816060756862443673765954994142471881181483911828835301601901695711093047815126516021675490304544950731756796480446168155437655492039668241133236401087504921254774416683899961394808926409304165285609208803782814044067627398524149405783409039726968877588368547925832219829519704114610323049042117756239139478303841926722164495360574335496616375158512184568517129239962038419706882334086222475327370423258283085791498971892243053810475084617325928038153795916946640955160207932202018013239429398178349877260216200457823890114833518989200845847971371454154745094402972818796520136987661085444506551172658728981363665493888294876745778039503949831208002840417561723208936558332340791211831720674249602590512563866077298711462697386396107385146754157702226505894748392259662743413116488217556492715369491427678983125072977960702488454386536468640928708676085330811728805864113689596762394701241562591982747999057895135056410465063321955407967412089824259853819470732283309842365424208794081379934084082825873147243633774879746469519909312226563033484433739757012957074694916962072917463993133514259255642107070363140161470702402423187190466495299032370410783511160904035600747590458131052960428969239467685558360820578795223695926373189579624386597041161868444374657260245268407553586973256915468174299216687862040840473718025351703562376749579792588209677027522658516829415727606110508227984364175825099636760802477787838141095380130753174862907264148158881267922179964682165858850239076162709775365625365386053024894844639724322241355561323286435916330434610747227527020230521355197765233112015411145618471265690156973160226875386266689971531965118121754593970423986933270339434567093983662882057244899978917565529454194555463328452406486970097671784185615971640361590279663532207518023709024965303952895043970284364816067945211647196543066314462376036605724601308428242460634355012710967602499784870773367777130430217740605786554311361836005479792798832175069395905544246270290076752676693799712235640943994735856168023609273744281017965566468653979983382756614405248453471586239605891846319113424486902355155104186296135105598631276502733516600468534218182384419579461246453574191086586741439652588471017460382818748647230342838807510882085688412665085872548020731382249982467267222615096673177308251324873783415136420249134469146372164577918980649479416397425826235378167847964429139644650091291655052113026680768538527313741145337052947233259926485930592082873713186535024608410648907680627249794718362360497676250327215970973921379511572282923802022426115522347478413664340974267815076057102495247179776246506583969505363913708386321732766526914907628509843518809915982414920255044740831337408785911288575715424970402306629397710730998665492333778372010731374282961664134338381799750880175919188968262663867620025362046115625909026704264117975128320668288811927000897147722359911370946850835610070014811015227166397875535348695379543336858407755513508174729974484939185476126940463126068729655805219703910008510545701717962734834079774633020655096829957012767843476652343934879572312056285239599146565946706798897777575293321034011612601760453828482341632427820254445279069034132318736483287379335611269748221592187057314562873576296073215405070102577967172197064723080933286583310247665486351105492856279266983924227463085120495320224539271295514043869957663669601233454466587668559398031562538130195926601483414074027271987727662492669004709594048129145532434188171408375395522013293565100997100983951374034949645899603997343911429932022442730118289613796410677065568932987931031392431322950456634180397492270842836208496743828398054752221568390964017251851161404565917320978007953213234374612150489425237076867744776872313291705265084701911110240559972566719006543894266149052651735003771596001159161538653434684679445774037826067292089152836045398296018265421280263080087788870666979937741867088860926904113830684188449293350555077817516669738269948434470808581710723280252208713253856900179660204939035247495327841527565710426171854638853444850757770204447807380356677493762548653354425474474892606864924621127809773422731940016230972731206678161928858565956260035453976564977309555416283825734321476099797087575297289897759666847445366859704118524938527344654522714263199051574428603041774028104036737077153148899260334528920749811904854929052968088734736404197183342594367886860055614415037144984797089667165543639630058335671364811990209626155475885239614632798379880403624857089072838900013604227803635428899164965816207247103928404321501330963275652305734334682356404436523350641838551464344410045782317556006108336479449599042148174812194164354901093900169455712733522324188778813604974081355252671605578922191897328662345420377686474421851359647572930370770974405643181093909154944180429064339349702102203503452553869099998616364947014844073300595417604954750021330854541861622657096260092325151644059575773224371445070602939923685036513774392019203287447384377142143403856067405632883263709807974003454188470238564343348424520826008340690374172838174974757969234223832107309495848034860603702283130380343534134809939563580948514395106449601193708932567040245907784375837233493479152023334167796116979643204101353343526204966311033469884102125031389999741213567750738119475035296433067304999876804008383997215369763457692616029346453444448447359237684898958307721816755954281465032419372724990010410431073245234304667258275101692575435749781679066614831384301856383231125405722500469902951244781644283720872734079609669354592768915431768660926935309869878745481869089573147645151993926423905053118710301512430085189913782288083062676563038616727895094450486668927516902841964634500313604761194121212228281935600966890578370556320617695892392668019173691634175161343421149906710489072079312451079450797950841052523028712847486036570304560669050850429694356306258552357617335574284713432028265699713719137692253153223751763730117547444025420321846715112169473362159872043165357254726847125159463785322757490495968851269352081948189934422575558531849811360730747506459898305498542500834287429837851528875804629458569532128043069935521249384323888919870296368906580878993865461514084436267440468428490887708915132187262072868903357953389232877582991999317464704900357354420137610173851339889021932724052333093416845497887067526887744291963770646514737108462459111816470034983446376009246693786246526230778717815958671386989060215648352598420362381539800774166816063374395388777302641936677918852824302377853473033819631096896703606077206157413399631781348422046286870209278383184491865043744204129286358866197869108083115783144596965608665806449428503730204326802165819086862422095391271332917963696061225862733213301969694151614689928969981853270267055627855565453794569263829863956798567447623219113922473369352999901215528997788942423774156956944402145402605637735315985098036380982560478346386612153994805450237745868961368645433376987043859390646771704213620725785543186657176771114911834858718897736153984983788344742026962430956197893291590962833688007157698128542683963049218810765281072471801268158333080876579852129488394847255708028642569521888284686691301687224272264581199340463546772679161345524810897408738378764766775764404028424709946786209420618998589366548003500230351805852464805430241822557242530667280324194834822193330031584211589761422932426358578094867397910650249083816497404322183618817202867412004136580377230892595849648757941961737061676705625277103655146490852512804658414734920431525299903475893152313899722763269967251123815781283764515689898108747037367063959981507266755288729481019205498519697350971184325484070953211137298726755619950399142213002274985145184112055564776470845976801040626303065396486269315644436055676203631975699827474349031380028268832248809297869560036626772822444857303644136889539025915571571841689773096444005718183252975920934706220298887842080325687336290860276280673625016271938184096818622503804040568409254442940628998272226821602093541572451995737309307846847187656791564586864320657540075309570643834380365795122379229820696899853948579700579520393489432179128437756493621388380027886473196506591854559357493502677274034230939981445012844313369623715670794837673184079981870913685688444069363281484422322716804138798725580627949060483083144068249572113411939186138412535801403768150208701282837676367640124668633943298351734999212697079146041300826650922600955074818149091861705065928080093167927951721393934226784921179978687938662115490664018021479830738234554283658078301230370409315943027932066124299369637273310852742937177894338617806491262339845259861174210125208704879111098131498022459417851883192385207599884035227190576725467297423609359246979569284390705861997488180167511055423903863740932547539952995491519536910603099949451184000508952361667902024394172502520861981784069963743582697533277982986633997654244155874345873649403917605596702389750787849094823725541909661548219628424294877554221893841534178119466129149505242583904212171400277499736273088325739267431690414183907463248867931244186144957693881815126606812321464696370746304731091610956117563186183256885687232646493135685783156884363439434315521809207986438142597754874934042152962454727755608694298283262369775565365176818691241582063663747158351770702323106099807316002012095858311502077767116915703236402792901933867537943313623867509229813386134116340458270327136814022790273031644599540732631567502761279296063828670935702027174313626754044185171311695904237940953725984984703162761520542053683721411895685944451457796532993111804771329312971251174333324188342299750650415342235275271188815587115876897454117494869528859049980914283402808707046238945993079443301618569415535217540487645221531618698045773315386890254763830798747770962460834541392784503186723212390931992557982988301752025721427370071539996193684198787136145127349307411106950946607725496176384942863241471689311904581044406521388112425333738538197907354614780977166336116261975686281633918804915042409086440733587021900168680809830584534046184122771271958967799416905405554993799298099847917478145963556666961167569664642469156086658831605221324600589637818124363755252862910052949624779699316423508325060799036204704891025395950233890995535124795602620822985138869834321957842281883140791646460481920910967232918163922772239715072362376232357935427744115198699801954653545011186517168137104727021235634054431506189853885985111210980271623314441128836308205625168966995510748332149900823780004809885416786108040336968821357783826638407906653245614648437730914773616780807318967291219280691468701066012174329215421453628084020704381797596732898329164444710979958620492993548342925885968178347139793987357821580948403091243530213483034673427477452233236930219744231425404431044916729163840732937642789695086914810991846589712525633282276471798244749038498896372669775906753765823986160240359922174186752735914782542386825857630991182462396361086891843808000410503485480592545622431793184902707976364784531300025953002349890249453547273524579686473240944102392229461462514457409225672561390427028393513715241786799008905609214860421219223090227419469129398295776943645948753963755111185062595370553971684397463860943799458920458771001774162343956422620812287308378137245366530580997180565046283288513978193443654129920913289369818317021223975841150558196924987920992728856323644630952025315408158727452420574902609987649804493700737177358349814849472108756477417906458749033770934447192185623837744936639514425339886860856598935370346872009771319270667098516843555541685342893385696533300494564290428491334719739793401258101774963655111039273108013680314181358340070869279549001617733995877527064850883490793332170628798442566341583340702623258719052605092546489042476566456460540596659095984802901527584710933348900879210147261119948684102519792732709262778478832692102530992284485877362869650655093006740208286798087007326091731421265542943768220245610723198034213473363784370963070253133190921023408742703827103204327844941381866562467900846512880629043003755927824176578279843047682350637696919554999477652381745077672225173579484540115253579965330627357792909919368625086965195748753211438593360535844347572513983921250952662088601321059753687224664373936633126244579432193306104059736629964773824177042133812187885642457474859794147348858486046040543984426408348181388756030604342481461580760583033884646240940805310092906630348788194071709659501417666089439435185006555365163299433613950590432258762631236821171656558673868389946374669350836828282946270307937324454384154620141247907804065436144944565235230946890466391690432098494126815020154434971678884083447933784355849313466346770858073432288690485914689133346265036986248168752054361059476258927558238293208730891882449498348159450973764414000701574817659909574251050438949298264931292049335929186346936816443706841387719828908494214277585703117409021709136567337023924319632723814379512478460910118702494315504270631494746751849995147294374371045575284347200746687852539066638000541908546516486643471356103536860146604020846667855258946583790622470167791867039960164337130115412693247115655161188713101898566405668017915416120423289717600184906219581916152690895169993652737113992141054219917141080433473137473512085712450949431524569778254693112096139102010083511760394355613036081977097120151039164297319931602192090460743167574300605552283123033731019807862976424351592314046441857977771346010440624282427989593066488650437289599042434378252263450327427352146803917250160606693825947427125173686957013419553458892682065961880831691420891660961468799246597507136533583799425178340480345152364228050238926477316600045100973256543098347488831620152107563864246962981676951771100250899966348917021028232885656824493302815780988721401766352178132206353367138171100193813642664995665883872296818964033582595850372722497320590577605622700898644254308627957591797702660707528052971487505336539598446319311283798072951037238736532835807864763213254320065569923992321225441904508091342143271690210856874185057365882193579549359098987821027246876279043070662221023433106683156727300405183961445752330856447526356070647969846099974093414889112293198501575553563947638096558098702349507209563694037402922567022245428524861591778997926798648507838713561220750262313111413683846239644680645896637910180750016371512741734541550172247583989300847891039873605129877026033379007487591973801502279630434098863777478236510282083798317623271360096446750427813907779152208905028743986456787700855746539676383705371483699817222896439522527051766737256671731220891966439542934558505028329128225917881582037144959807785030412453698828932666427990009076263446308772788174736276550419152920333487755871391333978106012633700406839362624954490887702267758004824028631117166926259974455245379039411542121860387862357219121827741789993880870125328226424184400278632129654331956084674741767950238277373408981374326672158610171830058726828804706685365077251993984911301206873218841836811285555897463617991950327156899467868250450181161835398109778550633409358195488078896773617490171485270415284285948639245468205783540630906814529549175201464906012738812146709371989500397156101110621021486590007907004919324214695691657646696659663123057863563706727498423835510767407694843793351680288013138743571003626784391549125622010367610345280678393397307815227124892957972872374921718776355575554635458173782265674128895166908711204535023964429389071829875528132344142750164028609545422577899501622728615231061687332106720455491232070297712040614580025111617934889783170595558339061555578798154209564670507647472754745891126607345995589735980743175424320686885451507138341712967524447712275326036000615316411140568177625320752845387465300598884199047102738439011931518911341195378782938664770361096868008429036367079846913289906693213630286676811777004561478755022795850872774831339600679077083121885215721363990310616451330735660143664003317289199816935471239747638031355812187404957701251311952615743832724620855326833433798633787534260077157202123944913421219432132462855578829365087099664941924729632780788632152201861465252202914499682140063761406560619120842582100758915138321214415561288533640920373628046896619434347698040589836411127928205678654754796555676525993179399983117321325821019330906507534389162226205180623619220912450856284632234243366969278949985790992948710786688333189511134100732881564238625906665220391570476723560077306564152779766163435808847485677249828253728253849164277404683892951351427186567799979932925243162370128443267919217308228913459161922423575229925750166815534055566687463564999779100919194716400920328846109735420354882707206143787275396285203706757229446496690747678878653762986474687341282445240283272122876601564321320888904913951846355229239867286999718568035736190862810001308613209389330982416529518806627684833664008462806404743153930380780348838691972507256277053135714681018523231790374663239122364882247778516166877803882021109504231927391483799013698790153886562159987983376484594884476773733600972491504322065743069442780115889695238164107418222517843165400637172828327447602520208113560762397314021101691750036023045455564079345091061490662385305357887744092248485961680932055534041397391083610553577417860615764704187624758050091516164039567944712519993484368303153294935856698718973066117489572451909598618028976471004165693138989612420798929450266552402711966618364041317412583460411752188964169314545431234838925619824405077801750578793995653911909507497956388146634732633441754791917609098259037756111361633356317272245755811075356782228088062042100688147690676342328473678059495928232111061369641383458841710395717344177034908195735530200833166539463712590719556517573289805469973658817743928011485329556361682833991056669129205832807917273736227058662925302211071980750808291820379190225091571474870248040878202486090542766444666698937385216979822261615987532807961216187398577497147288056175020529985723029468040300344491540797571015481562630021045431643607127152601287468509019695037069013441294994796017656177930149730781964933102841615560718612009804895361879361365125786220462198344038209321588671319913249001924181505950380621135297302332760648227329510150097581046665280449678948174978439541754538895476066313994613141738786469415983341295608577751010496959894416832337288959826621900008201219002459297141068601423297797572436351354002060976496077304914981821333954375157825089579092356122727750113910392719852605923605431911245428941104613282340290421724965060898313637180746466555692625193677492732316085067547164490132439669108658242033577252806345282858935498811142422783890215547669361535917172962345069700694261728774760872366736126304932149349694506596888409558855149419245432097263939456558917451526548827347046570663745284064260829688338092244573670622414219298743425501793109397131666289129878409581280128019536478952455682870967690302923174071624787571022489599560668841822931705811924730903747430739685655643650865589427305620111048874293809036929123705014807775498156581813880451455952678024463853008941507798400202409861840841407197946514727410529732710534796099332162590476629233095173955522569618777601665755254579784555457451353037113708357016783928311141630023400974281969611678823891341077254824897919014598297088369780831168665144542844102877679691780514229224135993385519320077353378784133639530334122437077003061799624520330162984056492421671282742107522852297631128525299195235529078558542978755109146582563927534481536384744581763157166867760206834457107019359942620039884135339601858590405585704758783478744586013994008777752159532111160093738223236757572664248318050390274032175628677837695049835109775435574389237496229689626756081210253206095655388085869163639739466961765091407312388762471733508055266146621857817528440401171342104999222354076837601954726834834713190604501998218589167199217698569143483816311230763337506167819795229722785298657821136631943475228989461689234085768669969284507072102700435799869465078892430904271654570071389599632264075239237754129797568100763603035437838957293288395524707195270418074218925513479909539212320564490966256887871107610860479926927228147730670939466277164507693595572465870745095451242559973979490957920135402511980396679666679794758477244643643731237071723222142543470882634543701962813237404555790744783291922955655918976228396219086650608956751891012237690042028351749607257489093899378300933412280535255736244343684990537413271679802670351796466873460104948340124487657772157400877592254666222929131226016227731845820449917080799232051894363760889481320409212579798839870746142606733114885771772466792616078080352821574033356886566558177828555131239754084491590505179054519796709501635076819780489410915737543804803123359754529722012923505092704648837836698464888842212627237578532819569999118129052664053634069430286267248384094978747887920147656759229587658697791466840070763641928641238354008906300105931858515529421311021111888068663514504071195147633562130231286915791121581090013120813152158360471779707032822208743411628023362908576111045967879203812980033325886835622388905758830935202553414766895896254590853379503704075239640144807154255876743563044561544986632119454291825298057629824704945401346222797734265600654920965219124188741642077972914246008774332486660349288783326840888581687169073163162677220762324593257736603851324378309825049249769535977681427288696771083350763754937907492428075254778533369505299561940948391539072045844437774211822471492573171698156494436239435971812223436378692814341560990625878902785121653136030431405581169169962808163937301035926492998349825636115971758195320256713768166212405589478336264994211100130861182968940673219382663147316911086025572710137013691002961228857474317225981884518854525296724459366631961681086632965737132912150002231236218335924344161788651684160063778993054165913935116870207591674995123310894223224806114633768949100110653435840024134450918446268351515084254930473733940818520900795051746952049092071303033655332958642690788508790080402540845860380378949028113079333316911692184464099852273494225490168160474599705032348414798515072052921284978275876916911867036747628064545460070760386315222586221510403058768583764091129294476783941724334595024611540436800842787217622790726236990539219403635612505449650288688884674082001398550845452418585899987291862696274491404019142171464449922971138308276872438882048587030338300510028365511349233797271197162693563323622475028845772787996563183094997040654721808913400475529585991322609700470273718166490743080459518662776981398704772521385388233787783389106085957615409247410173972906401564501530146090485909426503017405498310205593177746669836018770633492125207321013455584831088826280665037787536654416138286934503812728972719845916710523423301027606485361768696809844673336747143740225071647682394545440193122169113992440067934390012760511745649226926782370270457812062899298459879362556016997322348987090473475894852590798275869058419490757983402786424933525295250829809022783819942197659938170586654751157085670347460050579968230217879261676674728240992634830806575348142653996272999531661288190217278477047315913875616435915714240408672832208822316138594204342725704932862322641979115617728266822836341447497219639473322418977591657336710010576154431582883564326418056060825761991693205615390461719883515763703484483049063630403575310397444613064757622922510284712133051730527908168635051869269609598631810095948673978657016766520737432706183190084822739201531376116658438706335557049913587534768068076447897750567193631540564334384768404325056869031178778504027204325362400686552106503236589874464055268788881020216758227547790786006247179561755174762821082154393495056465680952706131191589449911652411405826186590996427634838625842206535622134451911170416391565413188681844320382567879790371502289136966991012869430444729507115925047102567100891799434103076901591784744417334402460609911965603927018377691405126752932016910330251352538136825436408609586077387935220006711389816289117247047207208746360230785408205440739220608645975880931321693875984673944823156772295631216278040112454438374685926732940747593800968712412679855881898091808098912115454392188228384941326029393873727400815309787281225697037880713515954360012866738248637365581718793842055109635661457076789658942683765831018105950781624593007495159118583445284120881128946967518617414824301860927473371361397663867615390329724389288114259584035633019929073825322959313717777682860075630975798122316493345179159985585915879229681307687170261232740190131341583320856005580101684537426339606325961707738576813385103420133350322648024099355510755476910824987456501477673466395861397101736500912611377128961082436342102724656721748375153773983952326659725402557197443815894462255135064638601057171217642671794561098447529448094212833260645523255334470746329155705444043489006615061179652816096233485594153874743444134896436991120742657225318274928308095757336184245689513429024639317829516392084950124726232522865437711113298799629210174329323346259552520484198948294283776550149723747489125814894861991332801287625604762998188145363223080967786105167399095154038608941185189245218053586167873095471637783040278627219237061975266110931265983829807721156686363318103644708045215572206952112696123585479656009430444892130079131190985366565513749496870102356814187267175864636680281335838551583347729408260081491520493367399437009117355277486084100475726868103840076702021160226732262686312662248130052150141954565494416769805956225512001969559313827319197151914033801319499155056600833406378044925086618501439848426561616174857042657423631575090578104185278596490376400635916237408131533192543717331793234162765050614737104620949383930944129400949082855753430406348465514291062148970543455521400282937554569428860683747669196150939794359258521205276738656170230400388090426464500865355359300280440356573796393171441556499514636686518567120586809013472832258270011540196762557604368683739735937147381935813686525204108133613335873012926174472570857108155195659050778925926549972616383719468195441434666198560743292819897179536326781690934235945928817413757817710586978430902280821760309126328357258223046650369108442612639670981898449585965043533223798575858256360617027811182080660542468810378274978260668216174993310633624267776734300969713637299763266739092616557935877744769249958347124210303131342478624143353971575080369586102029658795726790405897775983910854855458888082947129845421011078899441064942864828863325151886635852123847514531762579192065232281321524056097466086715841640631111651152650015792553376529886267525279153602424321409043359391907943623027696107827980650062784761291265159048993437937624443839047064640569630036230077180524783628846877485935655174227611340812923745424034936077462447175815274560302778245676828666516546677036676846205957991974393938021494968165021636750372455893205644211844910537199630547894591174930547192725117054194225005022574723357054346955097422827834569538331202000888536168211270594365887174575080439628961454344066300687012238181506948933330545651706022530803188624964280737572628314968377705404999155560372957951928481880226526489249730196055094463788962252992238570943974819343596640567470617693888114143807402236657316557721319386456536829902404987940970138076844228199361183407200941012722851555761377072008628561755890048388015947917253252901676224525552405375618033680828462376353812589030214178065624443836383794489127182199191414437317148672548129730394316082520158904993182007263665193827390773721023672831314299979424415669461091375796809277747934421556862039695904195166074180603268268243642124937425724692877521415897621452255966803569421390161558491273227612984769329009099405397914577008567535909869386286998521874819368217268735103041894656310031215505118153784227132708803060834570297293397379843511710339427190869431955790167635140209739631788091708438373416509070038968466035937707497902728326295754488984338549643904123622227932144835759913932365330167223493921662927563674398253824540475384947073619370826630007442966930048327526956312995125312155617708244717680218962721366832866152028279142489419026579405541378650103321286196420073367473249944113706083045543908678501845089732017744633558147069468717132957457708096342571292542655703365309229302956493749157149575916891337654865909650325414231713566154150494373638053561673939913934012735025078388791856021705488712542142053610744937258629780093310829410582921718684461296815717339482876144998100392255470267308207404173767812236011020198466587001953102975854481876727664670184330165446600481360980257075153614962426130143660204623330621182242999388422157358027588401159089537471979731983701908952970016477609456325983377593864827413794444676830690755350525999003889100577826506120025231501396645987251466166627464687248096770708705408090218638972806395452911616792139142258288711563331815487217598282130316196632626003917047546089257104710367514402676446838146743124570100685679418350526492339316327537326976749847324015302001125163790362425186079255155214763140331479410857526299050581670321308073427164707403249412702298166054304764985372235047787147040744985971618166780176914737939037479463444891962796378551020425366815678875584725256705334825887143192538173923776884411414383934317511852753021818163824429340146133668217140388228143717746701885161423726317755961899315477312505031935702911810359397690728828724023948486010939017715644189995061417672634897622904882979711833497088212412767659205566204833999526728857543152820045036319905419097556852227459423108339111932839177472042913947263483434086538865779558962127600175005301879962265044222313368257021022146207745727420924781916767841458615316058368248587492269222865262577177049356489383555670805589869742036163863126206564109621899616356414431207570732215995649533590891184678165732615817404995907719502697148702899738581827682549422097073408855529987195307422906139541088124250985972788845905688317839537800136477443898564342112594848699140920271225325396879220642513021349094730029563531615490579137111105538393477605699783528492520382201884176856970375346730871237904925686069990019309181801308782498756766795551428299639092160376482511549385092979048766346550618239743975748498352888648967218501299056211300855123559636283348611188422707396229123222727795928583947382698342563820024209840720309710754304418622671770178551404387066617836776423365395601110537737375096173757694863878942471036298632235673131265102073463894995789282500087593995347341716759977282535414418428812714141031956307839925144076000332067368758828599471805406313098269181846616960577771684830806104810299638819522623170984459775573601610036466096695644209019950817167385912079050361725548990964159763745208928864926526818392712026131462633000186182769323593546550236098537954429691561460286568682355770157607528891788611825782912920817967650379829115086689598825756725765116526594122836738165910857045704242695691419777444963626652491245934292372692588324779769706428655498281576347437002611135886933855537245650850778055960301554071623035089285032378934068771764212777676880648799932728816286424526214572412791363669732651287072704132004473298542713209944661904617022185500597115088751820001433585952429192188868270657155830566634207279067437510595389727526283232491052199469271476095730496977964722947824914222965168619505344814103740387646157660923713071096943057401340764640242770970973635291862238384499323087501635518547647986661307334968293703033732155027810444941086821348688746256886960975592273651282495862378484535187736994010550448431144952150468215645052578288280485590358349756905803474624830935978174256781970276543788991007273441679406632162838206618892260670266364030750222035801819177829815447404009894519220865973374965162937795172960553741665040036523138411032690798702138712545678978456563764869417215218571341962642035623229850701736909327746813942671981582787174539351947676913168402736357637185832193722255652605953129036338854773082817112467998679067518956462523944690538417507343678369150008314451927824454226840107213748003069523223906256725400366499696598672918923069378508584601919256588321827968892079411486411252593765015697360801904338340975685908450743886095834605846942286137215583889511581648461076349293583977831767432881244331734682392864299285078688027370469559267375069533484046808018354446095474582577945990597932685013719025515562037517221859308788203556911586656567003788687741522731186851331114811246665439342937365561227419581576179730317041508144158032549815287491423159075523259892810117433600354072215189059363895257098194971727618062167371541895614137269705923867313581846336127472513546927434507510581558967686720875366925897131128733276407778775038365251544215372190879241203269094849013945694594773531118021704473954942669777784750326647950198637071447112423742372888369022429470769013558436273870815654356746312135716274118045872173561628042767562351656685807764205149547877897747311198703596319545097706146607241571063927391076722691884041205052959110407154347513456652518338070196482977563268444144107937970841415373438233309588956616169271495742303439913479114682592242654722858322843247387159362895542553582628071468672552300921168969588688090587362871396596084876715139817418580959441607655961159311381780066837587387677073267741451001354725114504216310043877006097242671916895518676662087963400061176774693649681651816932710168942263771997225845145822104882355038490025846408720995015263186286093660661346199775747213280707488967674430361131335857780642400549419201136259838548924165803107507488621887230956778945750561760953889709624893302786681734049745683704708399101912799043962399304667901194652233202673245811050549074716118447618483871073040843178392556745140629861472430452586817373810810523616259355368481549218725716245509080130831682858474199796900239672567180392066860371317391160682919410700694130119138391319698262718739470004312919670273620175150560269042270268317489044561978515696864839759077349943185624721647680102460308503177832602380201413008426100200820016673359361004246856726204322384981322873630852396704122896957609773006214351003859222443541908528936656807763344120610769848372602155221512801892731201324508651299489073366039536153893174194269727189468974171746099280957849863319570073667231738667756236221372544600742290684080698307830638904084952743097072206895655247745177139166186373871974312496382205648062303381606355070455207184830012292388086395196372826482488904431301785303377926017374023606952925748238348179364825829373077412575578143020432999899166107069477906436591241828686613308279410485615303498129342978611456878306913135303574071283435234402656855052519879526061632674605677334480214635483268928852192062002075972189306371937455300940782156431660601164881522267823897263942110249553923674038726569832559129754243093416626306413441073915076940004818228471833770547023245960919451680511985668642063507061420479964378113586808849204435390775895899306250432349625299085856019304934141077227541977506645854078754264438124513058512989271423940548206242960365573870133432776257599556497528006314883155472461786821777258744046645460183582801419360742325023820728697789931723444973686397849914394477588472601112096624021086754857064412152770748854292996170861708318574904380132616745460612667664205517723239838372792297396536351184502368651797172014587579780059883511174120035662035486272589901697486651343850849178133983310119223614231942015689531702577856435842946159090372440041567016142474232696982074100309046774760271393842267716387543102996707411328780953866745601179780103555743194099219171655429578680191500121552277679609412120877804755396414068638553415617455876107857417646211758040315780272356023752099020377218366073729452535729668610771567260041805501966096465710303610192082342970688013594278555607902460465970120165634202995397568962905990258139556950915794466297961885950687689966920619820923299641806968224656392725951202535499796084052727699727122677504081224591391360743243007306870351055574560451786694177065950638589583843584184816183279496483390792979220385552402837803026792109708604205095067277554198956782090140615776449538001192058126956561942187192730611621673565442505725811668784098091695537520660373914608408529932393201957324690425706322488271323069024719300233082565365512699666401918135360890064814027329805828770763102852660291271216985598664323489467581393352278302659569677028950364926580334648568159159632416978033250472396095962430721971657938081790939914046173162134004101782649997914598314000962929553222057034110206141560052669647660313095453700385801494750136578641572372226760536117663799745165514879836045368532983185456586513506665929128554799825306870943370445953065921274866538431403892458456765772828181295712954166676770461557959079173031686459212110660960903988411998454396163740127584597749157091829758961024621938388732196564356070843190352636146752593721762405347617335378956602246364120408331959108734379528417304954413807577701121144122046062161590539910015314448730750653992241765477812878745471844011432483837786972350173135443417299944566397202304702155065036824854202742326748300923257623695714621312950880088357954120308729358441343348881783519013028971847340752499517098614821693209261059678255015158478515134298267970636795719402453135097101978823443216545756135319508518551376867172054977733858420170189114152003382294695412057672413531974041545531603084896331007685569372942883704303985815071507287077111862149612707946901566006874746970061336332768336723605907583558132722035995928463337449948578835225462229650858300072613512664091151052978673584282009146313446724282718305812345083427551556271245223808818307536111150888139477724091879937195165489836577705007256669308972517348156573176104109165792905333363467946216965917665770831277812139712520076078081352514759885191707181786006171871501005400845756760621864005621472570034251682422890238207302895630993838616504576356184486491346079379814010279709768006426711052402132901835664614350585768611636345743951667248323466180451974708640560587447002330626081004557148476999277521851345856545711262707790588086372470766218163315694883425095717077340770172358226990401002410247887034898951628929361249405370507857756328380608638073813978117295510571094493504313096025269309077114640018484093841827592506097366601550408804886398724001759329451686993761251430800659444690257299521720797150030622789327933205066099123055401580814455462094368071571479449324436746033244559655181154451400075815590855871025168589495759601227552489539520735619872422853789323040894275914523590853502734191359142574199748740413079316186338734775941763047357935454785456477288839222060618882946724201675558079574443965285409666785642509131916128307378847614955437386846966534655491101668328699459330286983514096878823305598520385040908075369611173017810873143469760036665110418609412494381452078995102107236116874780953513724114646367068834684466650379265946421050646480270665694415630630963382060269601356785534554829407709098123114609692015889727733582822780685127654503102331775644061539776324179648493456350436570040291363348666936910747980817163665489582057801947465318634023514150435115532380416656190242288736130819125530272328042392427050415842922937205764097931387117343082560230760414785360598553030292864407572341366568945352886039977199451593201627481074053223460930678564174891971201904195891073463424064351051417730195706425116964005150773255858189410457792342989175459189495521112459377659025951690882455019793135930504418641313620861040100418516303653683240847418135737540797493893447679848890696487530378721730242847466986570122547361534288996816484280696714071439734416960203827404636550077857798784797251378446671635431253686566293228821055505303230049736158487951646267582730903884791945763513717537317797938517395156272428056358638489731017348497197534200812940334682713175495817208276595561481278261734067592790914068056243478721680220286519193716303500761469211116580590255103732604081095631970725641760912924070294995006027383576765798180302487159618041950279696189054734444449703617086494244087170272968490605941317040862670315398462412921953595149523718741001459891462444530643232846446200662854164581754513038204162443836618862042522017280632738667025510668118525731427523948345177442736594429140968978121182463594318999059115209117314503714078003782075651604249753539005518056838681631657946143261944013672676241188324105015948667252069346402462632056029879992588968828746015200848494861320180125261480547474539283381902042131130645267889804522067211571529815145493514640112628222822945377401962970246348344903487989822523252023881323140133226202272787507820582141735153645432646828166708623307576730979872297878257691487629410597964730886332351231081307381294210918783310065145803343353029313744982253194796496522223835718563863484354069297294226918338343883342749854820481555067313562086499863400210547945986500256714254209776413371149184368052082603690866262173799257824299573503666328566862207646758326318793226610147532513305937592118459401610289015274152848869796988732819464225946090337773939779260464534506745217831845417771496189435727346510393195398161528326739920311135966036712943341596908382332120134195135346451119396863862022417119041008289397629573000460454170357574936510525949596314573264849483925116453145645219448039381964998639076113890605309177162930760358702117601778711130785549063201158653033712292861542990021321931223100610869455613327230982658107611144951348257605202421490231966642940621881376831085849356785276597212804153378319647485369907029598674887446278464749120993250607895985280561178134838094097462077623958862089586003581593715575489409428331852755271138108553566303321057132784502082308585124688267925529376135247664149330815234017188633675761323304020722062933191801461658065287648314098641485585707107835853263672255081678166934136051748519946883798531592742913997266176598934584729614262484790803851013109591272505351742977681061570938476722490534836859978277473600498798686859248679098442636802023316901021590560963437031751407424196928747538143235264006625094314824072096838825469302371833311819413471144992226310369783875759008640584809500948930245492513577883859501757067095132857368285846844071474547149040503340093309940752490167361013693125683025166205404380632889901823429864523116866867780033760453782066635709558634113375764238132913590915566199616102025155354922816242555756354707594168721819980733711145066429804335905105541518752022021072137893646501224981212935155734428731012161472688731739023994847614186104555528252487242244020922481267906228606934003548601079050043483994753041335996664506076236534017638229882867202868671183054514007879988505820565950746400425500432847380266517094448867719923189483239738160918433695055203642868784939972137180657620737275574924319996551917906064548761262392755927714360972831368317082435923281681394914436723397803040135176870775508084097681565768005725050761088451317908395458831794882525224441803502667234242048472817436607511793226511340499227559118757048730754170860374798734315538819413530451703355193622074249921697580997823440855252096990340138628059404918928956891501345279354507140766111394285101092538739765747189464505815812977949496411669372933604892553403147430492931128467051565784046898814463177517393765764598028204641337022332152655939783703203702869994138437295235034742147752253026504852044734282109616505595896507685047538985653965329131469373760047290498640624735616251504534129469068560625420148462089029150008912045468256339105820852583088744630401558179010642700438667502350993764490274304984070705713917172490060438639059235880449051850086631818739667584310035310351892978835114547624041691213007569364023047521060407826008937057966400868217715494311339683864390148849139625737762679501476461854061516018850085920032645694174759161268430794820100032147152965449062976881286602561692219336654230668901161427366949008723129449314982771072355297248847186426008491016614559891341324187466754652180696373597411500985883945104080150984771257100960914309244919441847236275052487565337489247073002484405079742751948501340732749524616600077559413116038890751789157602659855832107892395249734023900087332497754832278530308551440615268976523818191662055944087995270668450901603648793050329980915879532799979638184712787149827574632551667019746084651495600204542675202599253186977846481836631362189604174998490431538404650338174103553396939402474864230055680251834050782163040491989304851939185307507353112311216717366765727366260373924736487077739050438384427262471470985178012946328521681326873751664084012099305883122958319034711940256219330510357488212669378654397463382058753737123892685665420010986772834425837101898716873710842056816309028049203738805799516303706915963695349208255626686688789943581242327199860148653735989983747815891371415707341539993606369672690562936910484023316118347173128646978157873924705833519485928927503609154336300721936264471746233698855167694714413718410137663250217254155531071502593925505376732685394176115079525032735292992362916169475156496619009198523952095532176899517420347316513304529815400459892996398965851360390041674202620582285872191688693363325851495689300439151296883644965136345639110814474401925966047733901818788753930599959538277915710530851540435826625767605281974627812027086997705817205012311425476632323473245426184955751359922431350054870303042213766512800863475654161646286135782953429852428418894285062935669489339793384939699872848590991415485505899237006554277605909655809741859129959264590099403183488322738369603770493474529273224095052880611725349332101191067549329634308349179267199293981318312196631797183407541607079517395291668543681685983380081573475572548182209846022078858407115665447620251648256111593689458831143921348327678364410541329601277966097843595869385596628799084638854463102036983978056590462577654613041472645242896304789462487589156546549917723031346650102154032988917746534449751432679050421877475035904679189386808512383755997102661004515735133512748687793416539183518550600659819141612341935580608932119458038291554379022169551465766041827544281174098689337625077548601383532564945449514099853744212424224829908637963267830990601811854525300548226623198498306504893116171444554633229064660226312775319959218631295193291461641581107655789767903584158724591877225197587338313610214501033376734310544799359057745603598827952671718071266460006571509830388721127510889298173876136422569815256831097714732701430426140614353593016717463085476541663734677104079655816665899911960774212818089119770532814775167777401673268736454367972944643781333347114576795729195474120170057113171993591288512255586462100816124606027827531747631268299119494379567549316604122094197116392574917254723890891599754982722266651638015748674829775196907232329392100097564939517324092215337727947452401856729720203089604161772980124203786541604390805166662736583807432372724495862875043559955672528155115786404569108104299616415491722156087490403296533094550605349823931518245369382159922166631404450850627109855060734957987194673748737758445443744664867913475317860586707654429276306202430325668162967998422415396880021826628506581297497359757307676913123433869016022829166609924112312502156558453768561993539345580180256081296474243673141699933320627429032855533673867461922618980312702170980140571252736605995411517948830993841605525592347732350175610835896364417684394405898581820011084261739901943349369077622278628619345716859910942403448415664756648780235498538684486228136476157844753218148703531013553903753204304727480720117922094870863359670122613244275264410541188945103035185169141127223639751207858857100770800111989206229572122406494745127317812570898374623459067550598582667866381213354716913038215405414645933523428811609679656920384326027078419977596773592635824460352431994142330172688336683571743719608668365029174917099653104759599716033451152889472799361443423254434384075321572389750289014771770165460462370939351830032614103220173890571686415651787984515662976307854374732692327868964431441348454961919820492907247637053533501418220263776935355598152524834359448911600856116037395390409110731563543853438438294839322352064820974637769979436073787562660530931707453976632069726279719746653448842172833069502248393131481627695909199629039006808567193514887991875075734621117338957883786891036509208083090524664325519610335454888228108004341897126167128177140820754918491534147142432157656626737301095564312826369794792099972098027509618725001665313910454929609226581885563338998837884203491880190219134070324148138978717318015522213235669448892717540996913654506294260030430171941179186997598388913711425503478036668358919483695278622586364168964551973910487704627302690294661535192156672669046822204626466911314594885641978022765708268310937002510583005500164840441799965891079502478480852791117422772266402259959517048485680339353830158110114580064880780545810343504976492063410616990911208858006495761616672108111478664980936249763541783464322242240148110497591216359198766043311835888805884757942230845443181102519730437139686224128171641425048809101804411346839703467736156723201403205707180005295926794802551264342484989222171268205589400778736688176369200271859797962758058467231289242012990051658945570876796588440869498117981880923178754193699335996808807616410131744054407090877449882300809396175852987429856771184501405679302583939507834424013390891013955103184370197287357236195172207666621129466647056291594130325466738071658693122649953037291751202534162010159858846738256683563708453727215883128442153660385022772230642199334333166779541583850971886599491154382022469900049661616913195494847864042218539717469695171399637193818202301336146912217519544348194357508352961932964989730026506686572871650566955773104977393218808146040658103811028034389940338642284940505345456869606512691540213589949830145817804200500942086200822651749757121128737042320307394778903400873401232504728702614736908543437031375744119218523701276351555953064515360990576494169536698536681669384670727140053190186157236936408688535549461926172153753575464129727949353359213861592084764581866573077541061579171370919254971427571803533872087314545541029050654231071241367593563965559510076731559404050874570419135809735337555172294580150002646198821778618321237260433933599781012778121689860790588645746189171608033688465805874109635192765013693411989992190324418660211519507412239873576607413714401776517653416920236618709319065854624695018106706737552305719104120520803637841352106621633083299739728071509550450912786293278425378068622320684890973142445287715534497669106463449235903771659802094097087793176773109919122662484611108624302068894007051408465097314590891537293658468862709750371467691230557661912576934832763744334605987591307899225288998172900859745495557768102078550582325389142874004156575660136385869068479746535905561912737110486790006307012964439598624230173725511228602053188504974219857762313652045222890827430829793203487460838617243158568591328364842778990926658385463263992447028025449431247926508962432388198678219529024912167017316433535630756783761959882067911852645345439301937084714029030811261936806525633048378837790983122697895010996243043293287729435196879326206088928838852571420987748970488659026158130485161752528550243368423792282630937050008576668491638323117107014156702410934043884476424480942812176242401545451995427382855409673829173793797977404075506568332888666109373806412609369204843818986485653396739750857458411430238071541935904887526650324668987052841745319539651158932058719939743357964518660485797402112794184201394444035443045476351384607741375599941546784066405304014858002833742658842081489480068119789572304110892053964525200354800060038123393798228320163138795107051913580485199875225138365776366453872372671820948520661778120520091527068658457205649808248942599328400860641075657344357892143280901629196592211742698600113868287626781162367122161505978278094477860498314995250008056312837763674968761943448048147154064456304925454679886567722269178648397713301792199080086584547277475360963959934145462760250261787792754811071842139097374109616304705604978938663325836170225158270064145473740313161579577857245122348892744520330886952378336084310560154086472012241584464385537430703486517763234563258547509975777511642873725326504347601899825975444009052279115210160935436703092639093954008936610140365855405407888217703060117103903095746270570723499030448328636896917014789702158464181420237134835739839980043515706521974111825416727298872582251402648440503203924517743158485300476784753986990477883786738184716556857136986782564901459992091560772173816066033639715372378655369941677633393068530601405546796536141792228716560639643648481856599981410096999008463968741433833157852602221906839259223684920195491307052456243228251557426189787005979562454326552762392648632455935958599057151469980231230333036234809590275406736795411567327481616770105254103629931159151136281129091902340928257293949990638978432363663227584170461000845716777329507436316765568537409841142205947611924710116458470033845666868765954644420648872386401968259326474413941496509187045488846614480899665620151370565480436878889028701690972199605973744688990173300101456627999685672859235704361861567414602032826622107120679806037256562417100889082044474235399630601399637987368004919820928353289142419764278348287324614480168830985589178960243296708620294083734904610020965912609491106777736266632158024252615652291316556581290324721415471964562529836268955962760782273676717233333537194349231996351679797206498835432472006449577337540171498292519907400947909412381791440029891594522278303455183448988440451358826959616361118448707328801370568927003835732275206977363733684123672252550637600799926674416091201886948586211581759681816180793341498422640437374315964388459643628264901920991163658956872988871763776226404999858542643472225903168984967835014456265943561590089274058260596722970044366911845748021973986474089148630625680438388720933299707002631686654780905645568090234004935406990779471236659083236514530095103526095184813944232307497997900291358026381553352755220125242295444116479336487535816337439297040446214429946764462956894286438706560411923926049821215811886408343335765039839851790728456468424154362313727660822955816617025958748819644302031194588280198187834031092110498147430474083385097440236995398943633792447330826201302291508702016409399560950642190881177789451205429510263972150727073789160450505153877476536137733251330494128347834963247645588753391523206960615072557308452766945185757122156819144112389591542733064437945898664860065126745099429857683602673977271204984533037549080130464130812249541344482512366684628527315185276443468748102172705589381014505812416370264216675202835424743096651411575989824786234431166296770101698240725685693856151875898640331528479337738403012803486791400608631954224320202681698967378299758445610093004689149377454560458439052194963274732008902431662892264453075158521112661556206172326579278567936419032432658934215806682907020271116498340988419894305908274971930299988070129080496956448548627789774759559959193419969873603872718894827194782739227191075527096281642759870652944870008747544826059102416393927298017196737145175914085946585402453936264164693975635873060501773304356965532989654335090044924573006815306800002292245078984543520301656942233079559766808087663705484818025058915938867224456417209182359093481296911900553128878970689647442613257969241898938115134557263900440501038007670735806196946259274225545073805393636610075496880842553076746138748380611110556789423682084226378748587298670096311905328752421368064697918339961353601912125989452045792495756987261993881692877515847517873100447224715322182116038413929223785608022312297181005461081849574561055455887808067978234278576071128985764274881398647382187033652742248248315043302350811526759183718111517930687454580834023404844625105417121217893068810488043157212343070194479402938867107894739264469123218479210157334990827754254984543279866818154883894165777586927464713986410747112406482843700037883021126255270459198430472164826593651568473838863601469319366114201965340978298619471111476182390655852297287948670341891271684437741501199319920687073549525949586992128077781659288533037021152552013291721864543434078402391281104787592871643304995142562979252677924391443899982531171062441271098032952258134600909652565966350402234172030636477545499985764395082770510371903769178255233200214791312943290182191258392301167892630863622763736500910465129112335618336156298666530726118023160789221450952669002361668100175364494409349661798866725626952224934252140048236035202189378548733089866167597263023308548088246446129381607830258335675595409062960807291749211871149916307187813761212530649987361015177533935929071502663112583306855306886704286770684938857486248527788136017802868771614168027970248517692276860880764830417247650700589685601715206286628682771924586548700201765324380349806809407635182885143505193261343950384679158066352850839892509697411866653955815960185288702399987984739129578376990853947338310490157612231993876130777494954000984503521413549047441483667575103068220620546490033148184987046894263839947078369656156602453131740701887026118264081269680536231312155093267052703287049975867641717017741518068274656996106648195304298020893708262214658327213396045677274070087406617889281596142041659398102630803928010803784487020494685556605103590861544268199138581474964645530823957557544924888140281328774192504530337057871729600344810910859517674508604122323072914020665504822527908143068344934653681310421825318171499913881871256914876926071828783969786047161678765394377157183833194237282665016876477734697781415623272751633915238278358923447530640256437941821041603391741837737592654525705473372359008476309272997414651118110349052991898442073066952402399681456622829513686034370470565212856387394338931230353166782109389586573908167500452680076138257713407198272719349858357052412200314674155901353223504895682495222528228981544169493118895418901584665959693728227397267165251723267134263391122933785681819588163355547413409773192329430343712856088733314294395834422578358799325244687411791754431883628478993985526089229699789917424888011954920069514184657636928692649576842816365997342096750066414079697016503171790268315896962704130986812683210230586084869982897991684803756453027730919058156644445740897897395209762275116489810971477419134894003485884061624340522075779618550719164661207587735098627311545358540218309216568261853975763677456856786893894588837955682386732934653540386955335606155793853181771862898143706245083511977083849283295922087806992314454347421910982518792935855143565048880293272448881115254235707247115641136465219921724255835817666542718935011747434512619036539487522688615299589768599136390597540457809155599810100921146910947276568115308264181856247362962365561798911244741664445574493150956167282944908599194500643399049252617789662823234708638812828502980418041927962386656149355958663870196410263984570485740977233124441995274333741918810772046698002981163766411541767049350882557367861709174613284451587333135894704578106204990839047986198129372363130125347157293626355520650367033917551522291046894874221156709320343440403291914362166594632027997203226416912905566418348155903223464943055987116270728630432551144991120121531943963679775396241860384696147676993276430392141694978794507805291649050213238080952906498090725751841767275850794173426953329299907133388553055638173858295513627660876885836100350450606158693050816305042811491927983847938484578279207847487433703460032196580173092161916315176611151049975400690487282115949270662447858606827073968145038586950898578263966838947687851413847134153004279388267655587857009872875967345210616044735047182100371072716602224050923780647989320333283848684568097579024164519289722185375319932206932231353290371489954841474270596308897051117975042374577940149120120156163095527143700379771444856032006848752587839867005683524278345029561942780140263553850908601515687941203051552430327590471412904409433815576601490454593388626493825559093864197119457627223371933853781653449533289593785133364925149648853068644918910986454212367983446825382544023467980755220126123824258651628717651154786726493100911094188319637632122303557845082985852203311459252478879043255598172689172239049670952473761364646922237356645050044269726168097360525858896044724604587263600504345138402944493122348548702257869738252783292047983114462277346570706390818985031234920194352620726713772860221862104577198135019953159915142462154609290634371446615597073722481320921192308507144144852846581933600308668001900400342757921619856709110119205183803280569309770955678822498741449435992515361279934675503161099719702846416938586263649509143783972208589072029183584284491290535594037466320984668717068044842951690200163679983000099780577238662296646117663079609237388881504063925307013277703293483613584829133340189182161134000234336365415382638667858219356743541461939868472156865733357382405895264739545561808372666005487486099544446044545240090276964959204584327447566007252648962412460105724221204864495716008304925351628837246637355466128029637761676273819700848200323765537060357589329686831479413437008623442930714330948697117681720604734948819265738893052385924929409149960693648736429499856410562427791333879765246912911816991621420685747062428961672527300545901112080186633628946282548568923087726527359148941699991232709625953399941783566624300474283247998604328870943967052247953814610364533459772331849176786451482140599692114991461193593877454773316808580654826489117692454132534494244069168788241924237371991719308156628249458463200684001583058077740396916744575815770487997593278254866851310567380743491066416224146847930140617695596971032523342446526749755977279922985419255035287803655379317665423628403290872162335703360397362262343044403929792878997769625644174539407105702141626854939679624835840627332190738697627055582577872941146015171078792960616276828503038506669728943237166793829374612556477431681252445941604573286517684418336421341523153608554803000247872157083028001636915154033593361316745415282613257550983807029035704805922144436086412446627626855559767717275842260637165985011884376500506011467368749768332952753594164171991279091933579514755126237162777499124697302945385235027196362676043319646109531833450122076949823268734530772699060014253734777242249535129281956294779009366665744122270301077078240958319872380926156556477817010626268221996921949451281525787029577028637667596302228073900278060240737857839731744611003432757271948971147702328367017008420506562176986134152259706986070644750536253627804186699902777832369470784841284931605153656743680659200714572365873763940196243327850338988664158065998489325321520558467660995682186234693145687320108925122145471561389487375519378639184878670081939432829625050918771539052719633358964535736762960724229869569093849095122344835516283414770908466306634387719792441392789321478112655098806903303759439996821167516449044360676771464402503192288360929413520278625645880629144293285409574647640440758278310168216319085597627521351186249343631457078152188498564760863161713056049219535696308773395719775327251575254064719229515230935918624242645082793737868962039481040190404420279665261794149885640935159418614788697207190431457523699204525176320525145457045396791698718012769098481573837420946539957783715014297232310362932509401422813917486705321666161047196954702636178944662179416235935662932127455389525588957009327749251598700911988197925154720538050571509412423686148301131335849810743287467863487559576714042867989566790473740705392269676816112738542640032482442565482168380911204253557235546572876573315335605016852462710464195871547008582068462566273424045164391404945687008070218749598385398263341665839279216452736713727082214538144523038937810137987395812886625572849315234978702933942067386574987560283870340547683988639289918400703466198611781323862849131407344627172416210953091049468428165643138818582794329130462091201006152832387113509866328445958429348932607131400500939336937186495843533556846020209196415870660177291861322321434322254173446207716438658251443716012597218214229634460576573086749166591543707770893617753598415157528804183045725953350417520105158661164197422056104014778609711117754625134858081770574144163011577215356882617765704477373714377478700377135038348257313623193339050866200284410250425871545034585423444871641015274452410975471416542585986372021351457551781085229150926757209595815094993898136792181218637319776848808482939297834437814526983792846757152712807038846775751046120453637056752309962603855859999662905104262599786284664482994279637878781334486013682201931679918648200607532506954058087008651310112361559263628590230254709332263103104461383669892025842235698628226724051108249257232230917031987337780164149468043021958684434237684131018313479380526775087288225714319015604249964459021471663193828997397791093188069177118544977728479768183214968955471840696251559691811846917084319082767605001467055503809104511368201441868372540321040731284910359180442023353071146880308911522432021881047939067335158375707470162405160964257774476157132636416309626992705354679006750758561512773510865348811315613368527426156285760420196429392942876492637560124795980446849748880960695468984768451997087225530799677885483250042283425573576271187616831031268539601141555861849471015237439570139609707861058783092687478537489351746941498665649329740733016401068396980005858336299007546772689981024354814548732132919091599615773301207412283917982657898405087350352828778541163756183988208957001836241858555167375604409213863187742115387416377591471024932233195122473671112762758816756528196802430942719183020518124412350956358516803730963082644670831803288233881749800037927800766432566948187409791675932448287907991742875590205915784560063518474471374357419468116627407749881120561265782522955381407573827321450182134801225294284251181316218784363776876024895126460929572535759227705267419454565143140484760490308101785668225789684769603460795015674078686862421407836330310476554787516896813463897459206171528328129633650571704832815335369214088402278767571799496209971378679356479705258079783761677373434382260829305077921763476692936919929222151719841006733041581024965663141260013042868790075785606815918739907766387931605831655614876309176147404828892308966126086690200474602727759878817339855552982299286855276573221106378739079628265722903237538495404786883563153967273308233109466549791322589378585838127214310472447859638996525772576214225783503704331209164311905031494952266652363224615861898073395294163225708318756580621332678041258531880542814676169510565797596160312334863805145520085160525448548234248395937440832102065287715211761694741637500356122038481549744232436530336101222541954402423593274320688648117479176001283941664535015361473860994205016966150468099595682315990286429994608384639602884046942424457670723040277376416601125616980150022258313779314358039438710590539569310646946803775300282189453945260952860341365165598629969495234505185950089561162224843429233442021992990617862721152602104652415496209428815027173176244220064450087962298226457965244437555651070469900164536288422447552544759632843103209573145442862268351539444733022869482156546384160623630888936815495767689623454036551000322491912094892253013681918170607297036487280787313292043285916438630408370936998395996292467161176392327961444826595781458518756745092092363650789814363500152724874254886081252495552387499362101943605378110241065521147680769917202136842524149507816366379974344619750896033639731094351351172157694378614923696735660005812402922500292940289772483261977729040756506998003084727230269520797632939412020816077132197822852241367757322191197909823369632825148990975610365468702406857218304701976461769343071197615722786047077999554987165096391313045254918352753556046328747035997783735228072925439538644547197560759985305475300897837273483383430789233507630198342932000294158021204967184803096073663653443380653118562859308895870050322100834394058999467135034840350341802306736577855851782580008130952087327745925479420991876782930818283677000674561316541884495443134987621182190308749023534547033748239700137808222321500580596416655486041204303336831546529318547239990617469380641446670844495156651967100693338165475370810936341903412942146931027746315506429884877065412732275603895067919488780034371633399389212147599337002661959002015704606977730321774778976200710182742197478634570711551692572546416715985595178136101197351530169621237299806339050991740327778130883754091177043088292351556725468451345052860370846665109446936379385844569190330593921443623657223293981982513443412839769081261516459951724200075395784929962551447021153124775940396828158847372210030037544323980155437102066242779810516041178968964711492428594031238745770653714736491096997489315295423366334036728594679220758060343123966563100785595339124089377367779653745836780456105811131396293498291808108257460397542666016415860672280405083508594795698452215262659806945155956755954015570711035879790818628848961347287067239258557644109332556978752442165257833820493218348957405600785646681250680956490265038611060232559723915288947570153416495483669586231438280160893294600858375784011918461073958628570315586882463068697003806528935614308595480344788746433663751354625944586575937352163798344946516240600399168828463583588360926404605392868746118374740893340467073935882212788718010260377200612560849181186946298698241994449610223617683431859721363175075285817971487391550036590825952310021848697888019388189799167728291623529807435221956101211095879302080422056415138027134454836959580875593234790976533729855679541755160762494991962791114347101620554851937061295941183410076451388898713750522826068916741480699765311464049804445437740604097269583741747287135905864689534941659093243151214195750419875647154267159383850671252876038786995158010888051297208176346623045442425744421240686320349535337762913598519982606112067100318750965884374316343568272620699895159763581577224983832169982522158320803493269062545649242631204571865440702311091536035158167910765395084064280670803412450364770444594303605104104578338562508293777044252667851762027935294752237333319664875470896626337338523328037375543999959720809654212974815635546910308715313749463531682246347599211094218487858641928742240699461259722368355745715148535314824817211710568804366563873038529187279126317362348219582753974917310937613159674343216298738313439030392910487508515424169876358671684918398078639703628381419306486395850120048486996122281378782074329599608878844269915375526179536581144829651619408004076342694177249726773974698393925106543944318145040385172528029444073325481014822162174677198018189775990508729819197612919204159057401224282870947905841284005644430380747768575049948750091815993452534045948357951970188181939797219072634151850150727397923950569411375450829873587721245933742661129851330168291795027978206243379315291361893918551317509573501774754577297601971590152176799037308376158189120932147536666536533840882946399105310402514045981161576435152243125554922164081084881308783272893241521386638141981799437061788980193097152615724446644741990059826542901546071222600584170636284728832819071087738619648333938585329071891162020410921024602860508252551162194798792087456010679106396975495003585614870798811709609574082722634336608402746160654086389020970245599174845651664953809052830493024220325774078244209727586948597072090392907961470999615651459930283475456417776203978581684538024299311559473649561219923284306226537169093251847701055537106860198106020812659123154532220211389726640663385875050580321427788840278969128216248049614525769812272142756929838565885160962929493323448716767903130070121255358522377934123131457389553070590347186392475547942558724534280050122791160090812628374574446737569397970047782159391496886633803157424019874808859334644264942095205796464502874872328218344097695500598615795643110574630553359983688849639942105052772368708822260815149955126548163611211642334496757336511496583643899915760600544405742316415419916653847313580390404630227627848730272159810504728923637946736162296389126391694449865063091663018331028029516392299658380663349541308866883669400811069344764912195837841669451167150608552357485372913463016539998427454876566173148490294919143464879678149258695084766273474385249287611875204132835496340908741580228192260979654285130421324774400291464004039484739388550565457885609511174045957568357388978512376180032030925163680940607845803573810773539614309504120572345232267554246330944241474729310895865006745775999716390533077181920580151368140915808560251961309201084685233898374530177842130893292346557872677293607292810583854363557167885678937555528326708099274189228925687350198784924660204988113839384605820517640120863257242524544569056785607765427186688775266723794751126076837346847275821619375604223126876873178120981722883688280827357243300926161552855171167573493340193249330384380168808593117035322163929687695034897566811056893027472365150805533282129038246062342997628663738882832474792888300017689358731671197578424536181049995180812643008827700405137840796881346005599310690900484555095171392598271157547908509719679353994521481720926308176945266414374032704972824883391852613228705220023965301716206966013177047768978566063215906563680997693779803038937989942870786367875301684871596617839807231472743354195452050997066467145876538282801234939873365840865932459908448518024947108432879498483455883048427465883832972651910203313181624518911549100639549738135272607576317894525505591461199204915858450161685751287530031171202974702566301959341509396102562513106492204569153829209489701528891831107037767977500569362172340681856410801475065794094699750441091713565814161660359125562490752060189407200607294784438989257465016961892420260598728392741613767312568529895866235759851038671416306946694714273531456815641101340265489591435695104699666822041242739234495110267063031121964305812476657623013237873217514158816610347759152294132359055253640539126844476334669862420729419859395507897173103388811288852697052413146498318445364788553755665196275118378888169060934387865332873442541731092846174468396054526734711908864304616733012020811820384212136785650431499830868629632359162644191291354410691132212626085330514829073762204922298764822007926220958310282915096397305303214404894506178883847806593924519783375932993617589867000370421806441127167065742550206502953986779364172167658829832858218448029798305766126134906594985423796278189218590511983653609833549573571757098251557999459418017061801073181474744894652840979646260488569574451344242681959182485964464637438776764722266076752178899412045157094950161260419172297019942564432746587539292568103977079720445940958758735713428974898668258939852697004405449298329525434291028553798661721276525634769065293330582861535392373366853448829821847045661103174176176999477058136455745829196562248422499341375499621057436574287916126885051013243143754568334310070363817721795824738345733779177191365767457186108117703422485105625477573956746628306511849725501096990594652668650952624165879440330639037177532830797807769802487433937353960218192606870157039507796476753850093550149325698766699848925791969763939962845577073454800557318789231670818708895485250318836946022875476319011048186741933697130421946232585675002575108708661165427729921622115137789405198933713955596141766334925359962024964779361565633072516625009026225780730481880749041396312419059255402158346402269291040116190779211011565135038481770109315296118283563179747881491788738973053526753763851228244994063369497480472145671907332415557717812531114778978070701750643633404403607318048677242809424904170393778856447161780340357419691730815622545347564880509195955100541125643480361830887101035846424396246615181317696608544834436095533711987088720440966394929986274437221895388101154356859161592479054751577869483761875168072657037322949339804806856787794791500216332594879747299981291337297935330130016886338466436651284494966279707197195777245320115736478728961420428652912796542375829938277863677956185180872220391267882724471510110010773453328686799717974750800724567855420285347566990916649426728390981059927895405900567335618740760963807078455252715661573426862556471748645645304284491903590818847606594159805151429734023204054535369467651139401294510226931601700424877097961589867510195338092939682698299028918980405297484787424255977699552918332381050064724516248620195078257900154307053358866673063490076761119940988582712164008493615747787328768566779591658830371935674483755378714979447811123706529846989048502946442099772485981898093441217608850231036414600316157942981698359247887824897123284133119649484327291248924569265982658907797205067812941473903010106816188981330256522969094988276692520638805687272117648852060357439223476279845837191798878398640466777899295921195144888783461458865523780052234608439501538126565517542670213616797812062093283036709155947834178481157235157767103342628790379258492353244773118475001131810305001244755424370023591659746290382665994920396005582444691548794868890045178753395614469613206786938379846568676517876223646013889385442336240190759963435820601559582718529582626094930217138693102912413580684244674637697977987780709982331970590747470947776855145092222457115808437020913800103371173977621348160087790003794773297282763848255973629738199118863640170736848667686416277497188758649956911582892152631184088890533492767167144273558121985210789315347172966424417358201994036656189282499316428272154727069698332245883336321695394041483842397760171171798272377602945192881036805413275119141933165229791554864416348232970862727877457605939477444340270677287068549101095654214097376601203061582801504990967270579910235008330546174110235700431133637068787046182427601888785217937509577565893256084492933685321834529395442725308325590201402648597531878213315557362778007300003512556760403565326618702993028216569279125178634056200046770369177372034953294994838003333491370764760012112767580036857307216539040081632512204437167082511031811523723234462656271881473480647539493339497587683250931762565587144399784130194063859413928767547815218516835586815153229845501075764563384327068332815746610465869676638512747624654140445410850683839449716964018493253711849902636819828920063111102253036756062880502889982716037040339764093745599035034233576950872312525395780613820255002581648151166736264593771741552943675532835201801406535826920512811164004063567598362179983646700917321807444560100243831303229169498347419621563720342354576860646804160343485503721393793547953385453396251709979574710188178925480237266933986020886199105380183095038683361849668550778893252683257667423716625659561570124518321066585359796370017396963376994347074562928233645917534599046894128614956956935933028334077653228661390232444957225630746402679720881326705834031086998063401794914029412263323973839625330089772934135387666954922851396068991359179428396802718052294537253761761327873725376159587630476646642530396254787526902532118727141094461061545285910768557742693280961395304500122784674935203119315692955845272417013012802831509827367145532524844084780603599849006083002200905158036903305253812017467617894625969976349499913203294141106769765330988265627105229147825893838984404014689835988267640795119225567071627609280450917372251273800380953959133557564222555683022452964174777806108550972550383370668316116374505662786355095341278046264874555881321809063081624315015389191148572090346562297462087065586288216623375637257255659994706148619707299241866833660854629000217374408811447288383018930106529892028704875087998321375240209574138007483590594568599947016334012598057941576655156194205566333260500194469268404477858100325939985653790080406241440975635078047776103417885607213678022670340801686024764351567716197467812768633187397148284564179718020449036790567524626394888795331935239023778171205658585876270085944564648859975345299298927309996834322396619334744654530771808764106535748363901564475932859032206917104903584217340632123746086915633064587005404304699894748456614563212387043255556640950859916258086482013003368991154238584759059820161175740589546064707391487313336463076604842449077087266087111246964430932244188274449246027562091022547904159721063194674662676403023615000439800606426144650009290941472439722733779184229132157643362886382956189404912247654802910804215733076314464592997311644928950474578246906133825337079860438162849682910150467292506851868542423503896768833178653174408994745214652603207143706986163994360510536589331305034415972652190931393427230910944468675870582479110672928884062326763102855130249117072375736816524506392041716147748732632918503641087877521342652520472704963304759913500557851435857467844096993232875021325295052388174185565476318301316378223635283049843769479011210924217959079164268116791872020646063502805186046207039197391110643628292064116688613895035434353021155852047085027904241590837444404307787290942153059382020597660606887014100356803509650892381612136099991246304451681956436042721863388252475083103819485306313290936093550617361376692038970982955340694035998906107957920896314577082532687645860306072389978625100712360393241075661122221466471710967425834579251427141768439074574412247130421693447243018131505627936355053864877247586925929340684671833011479801097214566535060941747281509646831689416851198701212540456735152849834235711946818175286188778547515974590121613733669732842505843344280429451438146507566821601332053402426838997279580413183688896154861144742246493404467006174651270163111568084570485212677271725591252340465427780767100997215460915672696019656054622462253357707169266314212292786715407042226471343530826332969184316462626193124133321214692964541525909712034574103105233869348225301161304573904578377843761410071742374753844794041741044338331665352929144237439654005532875906602380481261409028048412741929395212392537835821389309291199793936601589548273241971144109617508295786528774026315444052058191107364250124141901769503904579484079770546538139297091776722475327857712041625278063221923684801368525895180861925988865996756588345964829136191705447444212424618880780591682547913114251659735157993914759685721001227875186387869795654294078670983690737396257238775401559731265014587228072981468645041424652440273944155297434456122854483628000834226726714420140595816376495908062559155991516026044352329371608666881676276853716969582376238886557758634939985151033405954222633537372425664805117203468718989778172044515968016731106424220923108270673188955693188708285069445388063674880738456935823242641314554809549014628229533627321309729341002560505681918885648237035716663481825977018396233613887891295338034546705436420651123932334572172840176813285235365177160897297733081839328617892056140477143187873184688737590768772942708094566581050278458985222806394303805180951598166843738526510817497391429286226534664132745782181629845579685972111772430630939624557361020677771933090197941220671982418805242830924449272122343818845072635957269989393884824193979025754134856998049102389670385604571491751736508899829403702853855819881308891082157592581595906710421541211937769384872083994589694193551748811435963235843188655354100208259764410547578144427708169504066019428207931960042014014990614182060635924890346807433048783838731619936054497949533136760359701143156382611138588738346820200684039441863518951852788648236860427821668463737662170275533545695321869481950387278909724134261857762129368007515426975556237389024221596607018398829416731850493903362880143556904751787962197412991292673170911421006656859843364581728817359066262819904529779408658321659589729155692262561065719961572869166535741989399004868170730472905172491425105086858878620491794386186410943824409139400372614872749486277821119825132576061672187791733922148174815084324942876181256375124430624460868185427501637482488265972454967376298989871271147429175394925222315401477643493958972802271790857449593319549949090603372128917755903225312325921098454903737553122784426925622662801498540208786908489217119993936779814699093922905493835536870005202855939915840786607490727718304321663478194227854131979470981321513258761355067476176198838934847044990556023449433934601903482053520441829703997923602736748099853227844150369442967095593323651802410984072630472377262934372796546554747102201766983317325916326061378249036571385703227448914668783230299644063447668075030998045795859900571826270566714407624070095113020236538507608480255870019764462865942965205457576185254990923378928874587681413994354664672854261568184202215002444549507373234969741165627373501613286423405033354626962986104925857845384458736928280503090273010248736503337514667675545582624656983262713735852532997521337148055453071924631745634232992019721323909987405657817005579814969414941204815904611667282048044750395254915343412898922897504106366558669770041220551011773129227777876894052132351977575201114610606242371920663741288909151241097877880231038414463312697206476925183430100755854380216345987818405238297106659578175422391921767404491618379928017516710247125386877399340323210060053889533771345623055293313099883617195269781546025893738211999361157409209185419933529576589775136844577023274380083664668863236620419941950148562322222131296153047273861555564063144642392760837773283660371783831901935222375577125301881002512232954866524999115442063573968955988197099221621293466737844114603426048993776667948547797619268925323142388979038134302315610610132877185207770909520319977324192408028835370945194740445969444529356598816315046559209727064003716057449246774860090120395460560142601612973195283552516735401300150621882245628111443667607147419244932947936469443118855191120781853270028890409294349657021938585220006449005902669581713377600286067509769321029910070234072500004239061820033173603764412173932139032078537283738425396171586696493534312769415296699223595584522007844930527167316855391456502474663732824656780815968807894216530917495261029438509084732613821917041070881351312454172410515060315478416461343127731783318428282630970786680394473489936194234497927880190832501834451923941603210540543297901270386689159707765661330428674122673970054112498350000415665653783677057728831690787195405222740216499848588579074744339922547596832123385953005519199851655256243949685890189252695250644869745720776790475953949274493920750553732643092241408005813329340746128190134367888932398007172352301535005031644483076496653111034840461984413323664799383290050117243770119315148440744293840745396049702934222923868271498908000842989341702862745507281959636008470528116133564098122836054337962674355800512511715586297191849754610843875853819461061233220608348629536423225637849211237661225477759816359725066675760038255796640569642936506998081773677044687473688845495802068951678311941756667412178592943202055444291945391722800942074468566107750330763721899639861401192954005762247678634906352812359142781089561189114534892588890972364057016644966053311121516838556493407015517391452936229477861005957239861702209704654572958527941392544425662618074107655310043589293456390133110811887508454666040137850388841537312396435717597249140613974241779566085966121832539877874383150648901357300249228179204138334370785402832390683304721703428012429565199676971560397631079339164225808727314680644378054649750495278759034414649859662378544395943140747065918390007045220005456930585200257311411552407146117573207628302113290588446398441534856501037489764676367372519264397782620522720328676268237038513937086907103038068468059550550182109615907500663975641842051576454081788412224335667700651452127239196088843822003372701575098118946381326630301008803724530880410275336522017195924883996412915609707136505959782749127815514705516820691622320391758438628510232652510922512430612581393388852275770063538138310462989420594878588659740607371134440029177902894360635196775491974115465303258431083613256836624294082066964640391502935906761025813390987405108046218855726349209880870627684713305712746743744334209261623262317257937281232592551197979738276721117214947540260782609213253521463749501619161943095470505098574607201293669436458575994141652857686893555548976905488143701173937488480620497438145694156313962116664863910869649338813019994745391865573413482431504047438874039949503171207399611088974318849970755373884508796677757787848778187076483571800100861984026643283931873302822267479361776562256989241590707525166492885722544333879080241215536618378449463146993831141138936323528658259085701916883131517561821924827367976987925238779135652271578074206428484475709007745829747921291900270859907490244994679602131554650030869088463476424313527311745542550918436435528226979951016765997994814169897637989915255951354920567152066499534638424538223431628743061818529327299882570825203916694230830723028901096631921489588647052215136115116969593348432806191244530684630677771922888783679059840129069125494254150963674825856004184942617438868866464908374192641845649509237523431046639189410912852479957424240068035170219834007387193148747082289747699056990058776227010691219885913849442636631721295998051819559245391134069418648394641632494936826787130786731224710924498723399450203511064585175267505068940326618186257498121274088752125279815828123499285043963676609374992478022298518001730767564610101986382894183724231847608008064106911438251529121066593495449520468825737706622560081365002932121699616240093123185043613758294801343314516609270933320830079260795440399246512798407287705570874988353455190635077609172217854786691929177694393701198519866356411222471614964556167315453286623368626118303578537052632764415627636031430236697387476356312047434351074864713561130376989272906048133669893043209550847195533051931012882998078725930455958780339108673690345877392714289893998653748062293836389675418107786105056128788380249914579049148091277779232002449946644088123266669883023070537828779345832299283458242949561225758520068934477113021228844167253818881161063423080541304799645411227528270117279382358094009011863211565257183593506681346477576301939771936011638735512705209650300284720757353972293745881628877649464392919867094505903076977264005513662119215120085148830898546369681767991746932403970903438253680929840908969512789120579066224612698450428037078981109168795530929544611586121220713718284730830745173680053707660387971606460198220166445959412113523884207990884692769137152454258925542991537143676370184074902737034616044018686288207124640185195696049554347223222696754194567461858163024107103710352239137080261602445714202135216717778250630912166163707789474111225827915268395097002008405678454214227828408175447760471481470847291267352458786991396399376565684555883875284159572844549111269004579328253367245008344685438702579032425634573785945810195997970371140421929872963691965696408624187443082978831282332700460663676358159025761444752644575688949003781177093556449476707231762626040091223887622717193460212250425338451432022255321493056508386553414784349355229912603693855701095563578390527421564685885933280345790873594167264422384286067602455600893320316362345334660522485705722741340210245902808952047299357895164827207693457621856754357703324748215755491321824271725808883106806256187791200926036981819722970996080354145763204933033885412754870402530414013471367043940889200256302708531382519108334811085079492889751272400642353419617375870036966994966782164165030540342441263600492189005461187701964903905904018233212161341420727291861475315626247047337523190583295831329359527514288080744721353974992123725045036467374717089242273195537714913282610351295242050714257031470655507301046604824643973301236505044929122231549873026385275077967745572110670364381525460379418264108743315105603930252141625799865217391747589419219265301384632621508779730605204269936325189970832977841490103188952799698920922261587887934745508230135503656123802066612864498192447000877362033430230125226773785240477912838084547009487763627345522113112008429633341719800697886667148418429474145465679015660463008422360002143749463481794255195042364756554723624386649523276038449885196635102410432623407475087784587727675297985300172822735573023533167480313213486719161013861122107708704798776362342674272668945606098401994231646834250828373029834622737506057583981260245304172429555601954385395632528731454869723480078686140900420066591152530819703891308845830529307926548750211731319722180294410297796515127439223581260049941376023523879317824023491730415980755792547347142766443495164558569024099623611191579225355262801753050729813586627659296506639370695396627443245101228372360122940838765441802164042655686935515209252598971308285382369812443715968395091465904545382901923611523597307341445686360556124875172174172167204908506766063018668910330119799605278462235592770125471419057458383568831585188631243899957602772702869786846860251063190112770425855654963232558449080849177316938350165700188890776232764130745505515991086958786819152948690559910604288081327021082107622378053811698087619425948071891699789230794032221784594848116388095787495976677025364929983329988439758601126639031434380948837772645943431434104239694980292232257180727814915050638037534153148828015205850352567805015865096444355108385807585569222052961866957485498381090183681727138809196579557626451578723909454394943896253994078640073542042888007771703381991865845551165762224188755438393420347773076975590890546113086842757136628026545503214172671104192356004864836433462846244634391117602938877463003739196073957604096557446933270363613314574991597388090320525350244496803964626918083470325005290582349567500576831533277599710743810415374392759594885730552801130861900630608903418498026120602867174874822473938084357535910669594612112112888166055359072581870553624290010173737313522609116346704544255953179958170662968529094959361734860037812950709987225760499251239802032987764362513179779481367566451957600133974969847505602606218762281800537428030236755983578699567070323530091174041714925084951562543427147889198557313236994497123537430125324971386260582212285987705870590723873816062814246133229110508553249618126143523067643346724014041582789873654647661308421704426558298547631120631184794073970359617325480713619817317390670916691042445538993190693309238471173955526228319781297475942324012888104220654001669750313494030216814346121640736396559375165458233274706241121664807600522213963433727636818831493626698252588552117540508638402147458352002315726778595390290350386927907342169169629022631084752577433415989161519808907999356610274025373108896989407008279009434431747035963150419068917137472960041782513884207145326427357924619684746884356319936105840679990240232006453862578074188768179997165512288923842563690911649007606678669328509273701986704709495580042631094362859954575206162615640886290792394363892132716981370374297152744886122858423693556490894721269465725388394149235952830630462380704112821631988819550461053121516580257798475181262378465925836959993017345596050259602907712431239993177085116132245336921582199908518724498288375127798253178445042764763234698245612301288933374540232941574269697474446485028631091687293937947199260856048219786559264271601610422870651498019837610383640030386235024048751448695026000127736090775547153729061199396987232619757431188882060318842477447198247227948235087667592326454915575493504472745219623524514891263766686629122798720134574029578181704481220671067394513337755183005011332037163970309148205745812241867840670532939155405642674004936145549292278915147721981690878993354933245908045156558442287101350412856545206476759292851376201526301790991272237172634803026582185010049253155111794954473499448491627542158711166614384736414719828224437682105504767502150797783055950963919564672342637918157246981028904375380238168666165600702248771616850722186493711510763830435986291181416730419857856655328133341409141938810932856635384903396666760679370956931861198696504839987321170538939754958388388851445404315207221973625340510935320788858708998116735666427802437171265492732745188566719041508902953486793668459465436595985520326792444401776451066389628830445845463228015828742263701099762656881305059327671818534452739419533998737068593972352460696653201431403765791142082491243083631102475584176799380404209218371422978641659687935698301790239719211437702420099696484788565785351354225448282919418340511232729299236761654396868708524073372026634358731769116592040332371178391028356566403076400237168982996735308676202318500064893428815123653855689591000576823539720827334792547701883197862639976826595186782965840028866526104528750829668180932770840372509626983649191294284667707693080403028562065700352468268047750725507704620781093658175047691171828645697137751691187712690285279039155991681302151985076477965823430010087273111506419784802391238696807988135730602676490180477988744518986119866645865759717424661746247659252272437882635495860117822552048410210666037442642613585049634963817347102131168815939641260520815475009409170582689886496920800556911570562586196081989012413478641024564750271642032885145084641326775234406507546247567651080189293698228104657045994606395977698629307833002346979098195967419338123387186280948499053346542986892461180935888583667246514308731004895408552634400527030062940326716214093979763384656247933718226573499712220891309590072739992879790658228397051680505207709517843524453421275798518858816945789128804997384238828314109468970746464196030309912514386896298025918760489285468483658624745515798612720308125781283255650138650393145217674071952292689856687201637868016093371841515849947634828062661227583089892605892725550938399028091185823111667036281462015027605901078298119201004700910509616298220439903969544829288908472708698400591828477339285207832556756563399796116728974956191685443418655313760006090237000209319028478448907831391329476566448857289037037521091271767704272787130693939621327845250388588836385563283250166836087515603322466659045087924715248712703432008975434513374107834730929479248288558469865606214839868766494645628700442945241275565280700220174522393415534987775534000766128116778988309758888043185258399237903215725153876307966259491052344605298423908133471852978652785246221757507446790549469174594252776608202795523287606992894761241967643500528278023408967077490823701430631404459157164221037411594793956705581193900480015254617879150009832715018713413131340443555905798147367169106148085674214979642967840175517852030223374558366305220859556454958126004505772550061881526098402616528960975299941704791441845592739615451722303658719543579772129098150627814833782734413576277697137067489751509310892192496330925320523836295204313070120438984051430338600386383580203557962970555537208744929632630873433034860947339395720770659664065449812726590346373642673751931037185900371580563099129890695136577798207476212166589706024668803892690089468945902811518946413182492847463763280856212556019786834999116753014292281125203059085870664529037601559175147672851690997554550722286039637870412626327297956554308965142772207208980308996576372480359716337411184367104243475245708847876761440104887595233007697740601478533581973044979548475783086237715006971112162725874094238329547956601299209590890054293654387073888995624259894071397242696822692995480871699548796068759703545762305786178425033103956504132567252785650318757443095734886823842137801989561946866317894293512132180710780075851433259277104966583230135902379438171891301046180715393123473204815726589423578197014818450600245023160250990502180177602322232834302477056540630831167265445350876782296768840402830725950315473116115248404900040904742803827026693315535495087030693871436157058909302594456216133022600879108057441725742946520866750663567705296506772956160675912554509054416157155157818435051587586451100292342794146423970109385700219769994547291149087388969836124757237788219585212626397374627946725816449431048716699874330993115529387094075389940871932215142480264407873637222013617312468372420597663991085325116521355053002917792455272575488966272444759349582065250571003967223670843230898459643091128306347026453591296347122121979822930627925061878931192263057782190248668385102535033737593055353060858079758845286618087347472915459530023305252644296288268446149497345908631121975049361510372039498188454494306418318595495414224221254436678650217754891808487880725601555040424523208715407848756600486020623324740690307750936873383084791451399236861803129271191447518833970815965742492375766255636828975319683942211461831100426718380489506188791928607158980268643776059555544174360369538095393375907948069646652911049747218079980166408237712444949982501332316098914428835902410625614778944231878022533375871581227422616608970974045853544789118479313956318172369875946759857505864937866020815936007572602649431669422701250290814636677267781670212514167844332342718089024470608652143877144250752009282984279080384447288327823961234512694532594427061431424036021061425833409513930627769800759955162691283027666906832332019533558749681967568986469474532636162849068531658356282527951153294390122158804475184314711317150528460512506441595890289070880916296685705359394372116039034233115511113565314286776641178159926058687140860915945160579905930668423484005313258931277353891874777307420381408325853585397239003736502654289602832559897643353276822614715321561546987332968618343461972444069988350922677351345786028747737206606656391003510182655260738477326045306947001969908039963020378221581748721631294841660381638214114423051912317654685305955491515185810222190057850189113524968139507742029478534747418174756988582651458096027737251453578244784145221491253741661083417452915762952342556101453399474913032330635092939816780886150238419000573811094502284836670055908475877452987257583950849416325240652373351078643549648310778260590555986800186642261491439706006564353082169658436629109402594484790711447482495150055520879331235662425091209725567239922664611017439981806672744906852375212667619037482034137729830070575070536542903291565689813034897612955374334412581511763533565555281125541766953938953309054345687046365336604739078384634693079610447345237464304619889082999290281752230309998870120710130239752488063635927050415066886270631999497742459563676385780569827431564529881671091246550216111543011141019249168976569120313906622701595650922123589110674630675603500632723315493548199995232674248668182102907737410820699117409371259985968473938685291389670156970117939038950416762627482628254179344001565901618518287863796821746296856175988359844503548614390247598148326557248096397451967865217718654922746849044028308720686547245374366649081534848488049381771942223504758028824771788491217081773083360799716448954930295030959058039183204833371968143532573366038736091070704428704804294564689727213765533755250578610031867160102255163423210645802621437378835223850627230844320504763352423180867978122981065983262890474894632984531012573133949729326737179844408748507025653859130456929548085005646808192570262211798801976499060964370981324572679895658956143945603318894506793706207556050234389899735806936727049995088548464479037582806596973729391377256394949234074020406359145653194833651608236631832592330028154032569244326875225256000615799166595230628804035402311058411317495350570399025826486965694084474880691059592601422938006243046569603746863440706850968590258298480752019066265946612005877971689920625670486741114295845083373101836152249355029857991446420781193317167779525471332012450908060902643589425116826234992954277971709808556937548910511620676855427909613847823676679149657586239294310287974391172383090472777929800767118753767400660561281743146523364546911901758738118921000340524444676892839355698108000932648868283750923252600480786487056994923335188005167723791928799334983839680051622378471144357236994573423973110569401401568044052244180096961187933943580403549379543249822037315703577455214499408543060677012697804906625697995684750808706645401399206885821896982333726943983578918383406693874813162103612967072748944772609857213472285358714922795344385290197782103774924475826890885360440860799760109932644724446399592673402631468467023114538046578748022398100032085954531575029453824934545437753464795366263359838947568561222149378712765788079171532679684660061953725625166866411232715412233057228494804087879302874075580322383264638516668462256857901604267958717700971225229178599577883552689618624710906912049383224774188121058225412108268727524028027485283021100275540812621654233629637165433132729603639105329723590830560154180490885098024796376807751695687628253069810669066748643787034800031362275689675941546590533615151894946106063078467511404124962491298600368272727843445813798268813132458379991271972854167153418120076307717974354758391038713967077700360089079097233030104499689925957364468863373704241811079749888006619721579514376495598286218545384536978574005929275934913796572281388793757930136477736894934835604589897642387328456986961509690652656155979475083518893418817777977110642046774492914521961760914715044725233768184173201810085298620842766763719599549756049365482652845686017085057967658089588859371800976974863362447164487471334271201096864748188782767993745872641139559897529595011800729511497369130818873059076025491648811166870418774499461064604530272092013988109455307718399010968125232246378822512143111459178169391725321586992243107719601338615985804335782085893912106451169628861295719048694370328759397716180056371710674710069229126936912292801021761318072535542279346348741447176827011176010994780875870189210661184078324033012210407766191568012927502968988982856537733376352943511798613972371013866411539902297304670401317259195915437959788791802118304385280839208969907494100994242677563532513423297266258854311439541994792513688957075357061137523964666054930861510667515095962855328456649744847649303067915587511420666568444316088452171275877443893137371543321001786474791983210484709776815802034704778977066978338988588279916233022625213170405528014155204903529501904749759200859348744910344254243370179895053234579755984307983204883083790616463391898765356555521024777595195593411801082148014416075636071438113358364293719459672406338697117592751379907810015269210275141619850862429309333310992233484099331417960911186042134370325368305735120782247201655783333818395423670450334831033408669701936895391239917652644428858109930614912860901967520144476310912139855236975360085731591889583079015177008166169957945836602293985494345300579304089370648378889600399651569143035372928645281366197705056813102216788779927394286873676207611677022351009099996849048048865692267109002673721487616328977800876941848577866050209753124008360577832179388562765212339234324792789692905148655596926512697548456978979373676399118270621254319561042824708512651092118071018825648065912336240723687133572041524931767802987929588605869318239790259461408829652937959093588530817021750148412432601673318018982579810589107233279768608434071216607465196064382632484430370963246511150327472384396065227632568601673308934875420861512566785526008210451734035017160281452557281824796294615772876416860728789474155219874830389512987851548979904511519152092737949801737564805031576909407996678776525355542189265084348937719540414869912494955135261484376657220089847939366025904357754907821476717045796272072481255208083083760641868691494574591139258577075837836846780761199133018540195827443662478720391394235392992659830773075020420164438816031511540546080490749093777262754730968137051498837119616147363937566158228429028799817764231394812293847840028526232842524193800727301326250006808361543713451995388278778464585548939589215733735958088250035697473313841226440481946340022497768281343562106682283820372931214256090200797237309444121423411060392418690786632386609065631156146168471041903072922808594961008170909222723791265983174983592078434851403631734150161842729425906580072594061820404593845965652068021038096176385288893746424908550602382990500220171955966468385110437229204742213335473985554331380131425142422854967673898588741517539295834907269421828229903534639588940307550185492836581007487382099832792001935559497836466380580161183485724533454699399573816555286798196556667131682492816661925318191766018732119452498124490526777868029825579692490020271238256281731917388290838812623521590907746430184326593591166627303343133401137746270863692724768753193847586440173347085750929682747984754782112828416295176158694472639879665213524979803727640410180746632909837292182496786932322150600731811589917913781775950227050601190733090597425825144788954433548133581762956206719665797453631452236201938276869555276034087282408787819204960013098086694876549130949696635152565447115682553961075232680449941679575147838098619063144692791991559966065910243524696633587263729461445878289238797002841858106445777126427004860028257550902642841035243506753218825400076005018858295657399917222755047339272361437094436287498795105115521681058383129902782401523797680755454345438664468231505029949491536235040250621979994436160366505031339845934972604797068712167344447741926571594233059486434371232910516651999578864413211145111663672323577591209190074014900491235834168019977254062484663863117035435911436020869655581209169101329858521664837614192694786354928570265098514583532301683395602992594332217159913223217102079857477188188981468860233911597932709946751659875013663786456604038292021600633355441824182992945656902332524131422697270949193086896448881790388298623465168198095807344535827879139388864862762681776705851762520141604504079717187639862349372389554910459339172375889196161133973261397503918084568366959537884396888437753759629768402746877195366461853816721822316016892120306141987229275049752798752178599174917168539599219289160305766449996352493012952084462868649681931297418942907659650281168558245604694111448334488594678125489493053986236600947714097959654448067372531816809216262671252674004500949187626947109866809521274157468699603144669233856810984672241928492095453418847384452950276783910517145337683878572160508475801335460836834404463631764453168888651092833369605796726193668938299193358658485231836172461624210042672548434051277336387510703868181497541859066370542537024310665439124005038845964415352913121652359826652919790177296357290192715215040527630719821199034527907365512777965713937252200893044284637666536586128416998041177642001670758314207623065335806972239103744869856774098701718569883538853512415646655940121775044858651196538828162594906901333237945744073340071330735513777369484641297586217685241669774431506970274428261893784369726860732231717893968386186866324253526202758249679173695299068369677970933059123582542565181659696424803120118970219290268790157176288384593069233891977525771905694425538085085413471436053472433188794858637713878411678323036602147840368720909148262579552494741441188779495380871709448628516811582748807954074767265608780888200583099463365437234984664851890300682946935409435235564344468076663320768853151180945850345347784906375512961646545013264939079207727383795114169671328078637469345441814931401615952172088576074712263727758664271534709338296101628737823752966937063004143712949586115401136169496821080828477069428999411076573981620406877860349092869038549873294501933940398782413898469624308675132938233179875464360366968088199241927287268493729495149369556403695652886488753495644688483980760441606823848664583859229513884301743040219005686091749227716930779363827147402387572894297535325316738846671644674652877644521429661624250378261316892516798024976586660325958619869928317432798508834116834008324766613954757583595328766450892916978217486986964718082655038395175497430483551999700794860635492509395091562748603756714296839141222127410536938834364154654205708607887684719988273624755602984740266093517766567463097676367311909573801673564115210476273300909739303891731118715232268437288944986005613006071822362492363050121765058026715950172015361661658816063594444572211925547438711433663203066912394208525591848822120939468975917371131142141872952698648460987444241464357407523473593221199895750419934979505800484832046033951260601243851553038258986016965411563277778787263065608442327602054156065622186371050753028150358549138468405796498773238024134909591002445473945389948041610111462826272107887892481949274786335089140951600958816093596160207867162970026293591828830720034149343026032896167494038466224217296445372164707222588823592415555129526993691563042072395222034461013741786670147098251197074405675727629173901938776426614885808165248679735851972726251104291946823424759586205965494262751398098661845024056915508352227989164690430626929445745895464223473606654140437983150977904307586851734685797300435954368743211379546410381395969259029807298726872008122244899112710761055279103577327249980425349617146242066550219418611286272427622333917326114444020430113606108736175273999982387577498328759146159732830334000997127100536468637637576431548133824228054505179635175925942847836591895220026907945618298145580204124709911963767062002376967916176239312236462476125129122665812391285666103110062626706764422066172328055398162554225596763336197816628035016735906403788227462428010877297023768632416199644834544290421222528745116735531915574356641568401059107265653619988063615925213168962539861442605212184315306829258388877496713135655254120605794720845350013253175368484256290569632508320519018651667815778868681760451083857334155751586110807281976205794418383901829758198612024331532382617907364881333023227907666246208942298264145108933893041582490079902876924878524924659781094110023310415818549544742086996925195605883572424815325429705844365432390862305471417148665574515033579424627061617807177968805371453371189283548822561643884116665201576094814625368045142447452259879173311888471188084696178765599379015893301732366856722955343644081769297748516446298927149269629406354951367660172717883758803653714809389925342916938768668624283250832859380931563793807134247753905103825569463426555913641407658562016892706830548241008106465564715944865462255658091838280809974519707294706249505126761131269809822583751448141212235410921449731815164612536198159394151770859665282621091350623897547567346093378821934152219703408279010129913967798850298846635824547551573354252562917369397766715678995446532540263426471081632179188626610811520082949846558120221276256726978483852888692226404297825846569215118628085024550160326855821839762594444664117408753856074825725812080144639587768620488167001910586904976646634601760347263757693916333684929876259071670796135369945386570204977819439334153365073219645818176436331364860746369589414301355126769904632048112815111186012515816262951624602708681016452885242681538033840168704675996969228982974004402751863719435174228280481920933539928018494398095876049667161797949122540758344716726654927779406645470394870299758078595249609519868819740630583267980614715323603251314060393817401463098014854747205459353001780441864054411403747628158869937770604009553643890059596193689705458817102364602397498930564444388817142904704978377583780664470017800020469772103700008578182328674054321016130827442885370601075189234753531810079431581152923972859224535611191540225192112372671786745098056743425447340650451008888411611739009816003969342632450123258414826817650610172579610919098659519301851102212107384723071661089417272766541176204776012831531327522477987712729977189643271330386190764738687341816507180984168524606126271960944267451754932014006914726689068480816778231426821809071440399779704448697119666151475408078469581834087517660135534900973152044026573202139823638207137540182010128526786843899243457804080985964465452777353767878867681252343095943960173550272220062091082876823458859694932985146447685724541884432396221018047434494632439498243510920156020101548527609770544816730943313593498491171873071398220134877033698316524126294321602082798924555145129293300069137735406279031255048259010664319790224027577759501616166212004921271739358671019928705830650247800432204772751704765167663361222791358236817575907327887462577801046692027558379939342869488658223478517120190160212092757644340595445289072576442547842877588651154128465786559453782817428783929478658898130854453371926560426793248190409622535176767444724447429904956296701095678979798903696610438437592567564993537186866799338990940837224149708525063439801991995494523264408644660340286875757210123044382745830356784112876572656803069204725248115709728305255334466793613676113920182771476243728601040002267482392756701384971546156224598561621534294908126809151730588277650966778077620177965149188618741353112722930496503855091904586537405644833373668905157585363316309966103985569651913037869513704202414989610408421894546576331618851570157716136108252172305115566561260110351067768375948607189964649738446046784365639745129422391997875499251537437075780012145289644147828135455110509831636804724481762065031294811173283854536139965934422866473836605674288930660266527976647447792023175462558309013896665746786122297828788427218339714818528807101275913827583864225674221071016464339273362690947385283542361974362580972120968312488461964563655320189789395674445401312631288753580735479714924621332178786741031742450530056020356739394115539748821998343486436908551775757952751767647478830618574288150881724918012194482118411790460611276617368507340133574717829644526957936032944832377930340787930504478095661486898925448592265840959402047134652668406478743076385034411295638606480158172881418855683594568289480642967541526978414410696113071093087941971883259539707694117975769705741492654395004015216901840474372431233938666811679052248846331768444486105651273373326980431854924309412830330742343727909779905770526288716751962858309901076315956395846566997962996630351553626489125705344941049007768087685047619698371397399452356408491608307737844344795395048906464991735545350265164053028816130336132854785078126573833221588881927397458523867798532936734549006158968162131214784018489926933410694413596630476191578288594593346533886280581207789826652888695912346794024891294538103810049779124858308978332975884612623049548250433502903219885773431700495410504461179899209547394276727941953842158022937428862371139915962592313083532010774511232225400932289278260203714204315618079325948371416173602198731552818569867732327896867706451250964329280302866933682048621674368261116299615824154619769793593754545508152890534097837282169667301783273203177460826921584978778213219284550690990349124331534343246480091089226894958932491975413804873253598111799905262021886437532803442826664678844464561740359064202466842307002612783619357721381185340548727453719640257527266890483159898112043178263479371304398269070599482305960992314482940085118727393873501728186952659314303733005829441263726341196993809036418878380644241849812089037239935059808076968101072817935553381293671320818271872035325850228263424783504809662008766472081137509831475041850700488804796011201699156182638963560416928386485389427329263474039204267280720096831231986750361371286463790448991128862781724790643314740988651085384902676117524352110401376907071644205833180899378840204044298776082188057714549818839927753614829193820004491185023212882079790494329701496249692364720372684940312450334028206673776702141522483193328141142260039816548647913576081251627848372879862884262029141923476659702296608014522168401104792217076500115083744426797856469053059791176649984618666568535477843933554912234032233930742421882859640398984533728817891141879845569075948304958992715711041025162470362288107196995594716216646531093940757890832781354223582575797045876672638256305953954119036877642306109424149293578928761311632338454807575727515334378962223864316375654559467860990377284868689177473154531306784016993266204873483581321792909695628474276665838888337782546425082989272373430301061478743867554749961601301538460021317225638871575352137302607390474417491003113426898233155259611064968282501146831084325966144674313110919121041811238193697305974123258314560070052933056002154441585648896142917774351041716611513101953941475929627680013190322447356543456446433159405330822013936066778800504631979083576606704286556733961516517138977909300490759710363991359271353713278889012016280515705334679244264432984236676562485255744707425060198576394087610313752114807769709780546829395074475322681362801598270427386751530166646624697868078526171539547615136928368343052499240712938576673276774099631189480888627977704964611653807757009505774503894586919459282644971869651282338679351231011950813973140414175925578969160348129892114543637271911098840566216195988645294487455595187363834796976742381464602027618889498067714068554798647322944821200094974964217136674848227114297436338546853082188187586296596541496463089093682878046790153139350162004032828015032091851506575719419026087915044295393783348131692390751991952815471353443850817938531496063232863032569400074591750240964854367041957273880681810742638112164866285197694799183287809627474114781260242415569462597947660634221260974800306011239690388453196936699717128559421968037306336203415804466726583543044596979068391614710538978940702920836538084986736713046128187545296165377831633212967793774473491898895781761873581289443174299190103732776993934185179626754883075198384508977467508533198186989948574636084942992971930860748141832931047996639756925607909623771112592312393155493360658684255369904130670649983383550573647408245895848631370686732818961238366261857930978136244153351568303234863351905824400325950758373351797723855060693160954351599393205744330191458392496246604702625353010434234365608814813183845127216984365893520451157920318311897829975892897908054045339970951613925052963796606819938450353494530121504977377793208439741089845479360081025629695682788879524348038979881223557309300868587645318136413078792522489416499896725883993362286907465498096150624501771151506364784114813906581975297723834783267467303137673682796028390621551298093307994991969687348416783534828119932346205490579962426919022118590559230270952378828763976418874640693326421529557606284030938906976783490629921273194821368363031278643440814753655474611259192218690878434619138374914735208224437375737827327168321829816009712715751985494687722203205992573159364078231829014797182199550951608092641653885491666359266501710825927993704901797055605669020241160950359349076074272083266863352376644374968409698012487999144369075847802494348297502749714232964767978842118862468197919938376549066047260532784442080257587896625383550943444165482936783073492469087039140410982995933348618642730405039371724954438433576319655591152167762703544372660826661343664294443734318664322990326098403082486032586512752844934274163949697913010739122520156088930901829579641544748059408333659944043923910983150057714664142197312647712267115494145606163878997166389708332549252756227016182977790939410321760241621294110791849687242461933833037587177224041208345988544507795882402465563337906363225909454851171049843694687773940052981879599228483024868580350493975798677392199051748376542790704733972803660978937093041002074637982917043367029549169863123064719646706440640352553282066589638300504073106049964353728292852048603248220928116511675983629693953420768430371602701175563210032712337844139095762993644021376947393009591396743358955292796119513164556351910110360016413726028218023944432221938073914246099905015312107544542348342317115849838612992595936324234453969241967404122184560646052147243580378679022752473731519623936678155172555814353633741590294350783223826476446103874929979508604755851577935572634241695034275762224523273080932831012218328374499920699647207145894272516839078784424642210359701562016528104886510947171033871833086207968809760359869411056929404413285526177400369691786212040628480045331796665294508752743823582303656029726255749379876124367316074909124187336956678477592014818787477973942038235723565206025226076097700292270157214322839361877088651118917592084811026648389447596620497488090656613672758121014716251726769089016194101166557348628994685190607313100576080561006173580780292401891245124309299872082910506933330273279236468935571764423117079975061521651759932524265111195593453616343489465479221747638341103764799568354604297120171558402001441209554664539394098328752643560745514196109532446935979149588499923063738476477843232758160109259895379181322317454848053283659906892536441484894475419882029051775387015954576686055297390639554645847529074856281749052858413772913921628790133293375203027460361950054961548001396898075190156148232366074520268503966083926843966393801565437356371742162812582952295898285542633928936730260456504529275402931634560130704524584833152944847151813850393238885573073035851980668698876806010375016559836931212781232333667168757617562498189635834120441787269926332493034889780475943589199724580374932158374533478394276961921980915024037764888441077635678574599711987124927162925160963544425618302512793686992956310533867695682836331424380679680708018682567060010326574997337201117328400316823050106279055077628698634640062402102820716749815492732266432753138036275317824851245357518592969576296381789496521809480508528566704609384322773606896564999271532018349732337011302656183011545221164361726761359878741566515095417135500075983607790547802283710023167110901171329829466110557106017495727472501680336277159855081400794066812366055733281350054364669830697180932688687821287008517644649842005933748871312874150604925114420997287364891482609368312482856285295796659216771385698423061669591711974206935397253922176280146133422635233525351694712103085783598159461760579425210864500091983581001031954605081678212432671523884356262996241219248904218184263860744890164802266944093519153189260568964722278710424876987387313191485695221049593472271840245025703093480296700268506873027811235853535491666976171241258154172112550226603359503041265617965907035072190863568534907046527643924216126356396688828494554520258382073632350703683877779649972956028700797247373067435023032042095336723322385241498234773447498310217085871075983304688428785930498714134035814315589987019734029522205563059316948617181001973553643744082261501699000328037206331936495432041792150596116762060326188614732691416898784594423551757826517227048992626113498857853469512343156552083725481621830867974960587033365032394265469578396499208518578219875495526539036656843702142570393803446778446663398773049613493303115789959877659072617931550950364899378145440083238992933732120898521786459706900184900058327901904514937146065018779826074659231172110132229953078420093912653935986505078945998275186481337474213379362622800661533068171944368316308920174575120858808706601458969056073466943242554682886286489896409481074242378407873086512650598926657212358711246948322701901219055320993201254472034756852998983417128214021051115638483314922107721040913246925580178328022420629485227099006940948323841112617772746794330224487688098243110677627392229923414293403799315671764428622305121813232883152681786231440755098782456526898358133116210169110348285032056946519865734905084420367972959183367490553819282331931326709273761617243034799229716073262419536946700937572665338337760925471983231269357206371995005870894902989692577092797068001759037520936986421064924492010839192877773955082659851803030507799457558130308114487551638499335951971229755331165135292062948438930285558625258809443370464300001712740300070656282094091910780194164298940563344038254354534851773217983346667654055823928373142359791619715423841483104273628440229166104387244218873373882958060944344826949592424729547426791917698539998291357233183703721597019117815861032940553344563861204466857678937442115277985898907980282120634404654556000182260469888961400912848682810991572819027513793888998135161105084114591562458875134338986079094490094274452394827393648297291175637460277269340115280133002797646928772352895018180249632729714358601157977456195994619813999774282700070166344413061897723063148775399698200751678904209017983154830303577195156399958906534713007463596104957245134381650424552834576166560840870351479295014616895165414057377740962230920189447169219395538944542706689853470358884932588101922672797756206676820984204717725992465961563104446256584834048950885756932250497173043504324485225096774107134443213597276187897454197814889560986803701477480596994632613638080490065261103277717988725276096782767675893992881684521177479168161679555074756211226114287608190547550091462139425202252559249317989143468421529566886838899441630866032271062005912648435807074921029325683209985907945491058014931244817873938535430097547037524019511064320456022368230270494482046927810447073596556371265663640096414071530082102049314042401174467717911934378805375299720839869809437464051703119537447837158380730551567815619790868559514053378512567030985564445087085009136079435904652666071201863144312558028598959388246845417905870733375762661280692112052510697944594334311376268615445500452221073339541178709648100947045221154058612098622390568342659496091735570449047582449743560336747060088783642123527369825215060619741844833718064689680236161546243536470638450912959494389841692987318201755976743231157654440803153190354006197527239759794344831752447840524873466310846292737070173034325183956867399526907997474237083350844668899008342030574426662324025802112020562704600932792582680069744456953704171185088780697517154091823486662828489623400138172705847628232929909377641004481235062035658876754656181951553677943610987760288932127218058560164744798316324684059769734108456499418403112342865363758570407703557446209752046761450109313756814521902169220666883300933887270372520859631098386810649954568449851448219921069779728863640163024633812607971270203251119486655233728911672281092007882382769933207419449924453613848716970131751252290912180611597654672327973878818645285519321802567095001954622035086979573855480373135000285124955467915891014110781246509566051712966838015058558096307675397362007815533661330540204859102276806655736307590956812994934404784400316568399447216659315136545339286147236937017603974110758925718493862593630348285767420992586643781960805353567446037389774999184214047700571535496706935200232083466948465088219082631068196106687684778671337394246685817325535797338920753688826905563946078860026666999117940990802391667456180115897244691775108669913359984327306601801534893389788281344471571193037921013891618760663911578870878042687902580397906065982139757328116879044644382164864774042406673098577215663263077628980369669004659442058844166981002706388638895587993682516875893414806974941157004655276672589314143877450114785393395853188043531819696475757864941068469377386690914851352915138876275405811194081713591011622378186097878294410157607326009838786912750258760836033770966910580942155777655137305347378646457059681806650593381491849526885365929546819485877610683637249995045863192816673335725170655897110557724500552777561226749323964199783650418044998275506028168862109153611402734013000363720181305819160824192245047219991538126971532338934270154076128053768087367522064473669953756181906895338044097043334184670288357356103182959359518560141414993595800610847761863157592761517948216343603007302996232088215128047828344241389561443175784204070012339838846368139191990250961429569609635670417842904761923197032445680090936247893007086341399586901510051962493025412612401574511592891922340383675689654420986304900525355324822263314918246511584055151964808996735658639109286086000774657214311496795025271846679005590478595832272883973354970218268833607529098586640857389637813810080297702355222085038749578145417747158361219637227428005949020984389945947611384335353339784676419803426787668179090709218126876519698535660485363555401464563577826565500563154071340823393702329189659956447404798294576992227861902255308815385604493361171085855113757011998790988495090926414965857614614544031451132868836377652649949890570456026969173403811405404680400961858123980065909118826940852255286507645120366259876024250632123347121712367854956841551072752877119051654621411377746763540837586427727678584320254670078943987013515057875847101639997433920095524125728261050979847011119162635074373639503199448057862906230337489819480717218689763404004966268920829974473397589708716523224665510412667482003457377769243339535564273463230536493489096452495602604430162862197406296757657973006073113609838975621583376371084581366126043387519424316040332324776355349195917295249413996984601919794255079755788986433646405174187201262331218296978716369860093764478974658928334902296345883407295807296887850842656049884061236818481943700349358839026487149389365075780928407766987870376811007522122135177540683738933225328717628185301779421696521901803908696572723374377697411473730479932767416425387433896705111053074048507602168943585795664546342934380814605951799877293975772058083571908257008431570621344292131731734812501816617448101679451713364016917640746573826978216576432094543143463202329443908222506513880673797938027224862626387265925169931239222924758102585958725022143986926882591093563809211838765844539217279814544012695772003049758379053089776217897440605942486579138988577225111203636707469527996134534526097722706671970009078525800477681467959591352417754673405150380313474876678227831999870770122533890749989426390278429887788574478392901947017442780955639582131502981531104777023277656893110157573134073778710589624393889572665202035955377760748948575936298357812525360448806233083763759239592883059782816765745321922985394112214997356072216701654329192474552882565250098773351377863448241318147355445722985716107434021043576751292227305507961660069369401594375998190157872583029460795395849212371072925649392615192237194110495173085439885340174945239548432799124290933310454719246573287187092585275882041643472747390992222002070724318760679356458402843890797592691658952344038332384893158417423762601019667738087363399155265091434475346405059313899853698199787672596524876706749391983997242888225132120729129084823027266443358447347943118021194217364396131680759219390095281824802854399935566599181216611904369838908579566460429260433489313267576215648098989043635709801628982797553898978548057706717756033161310709467406517850026913243132981357868181682109004708020942087951820278136704608779102020562927399733030368169724104560637505949650998613104373417007633960083794235632952014544524951237461899089978500071006869405001948870414291871494162490295268458346755730584927211607717605176873469706857798741588691694376807199775706213511581790435348858928487712647487534490317037347170454717716018970997069621315060434432389194010019750854777752435002680262033253592813544284984966855469528538257413903836036200026702878745356288620836503301354441620452187783711084006029673761610657531245282729905283715810276792780184051614995709764643553903480499250941564245808965833850682517014655755217891052997180149550218233706477842954256201181055347624852627735470564098460076494739336430309989013259953441458194441720782661671212533323863011204402825597950115367461989627598644436576536303151161437468797508038246115579692178891204074933834342762279733047693949736851397922546924719274420109268889608102940919753482772809513934521124379115062100914593167322591690584497647908572915060039577884191708386418730702974188770029901174530324527934684735431519658571935673008007275322085603443229150055370876287919826691492117151259637411507301509016184799285621138015603635236288250666113045273017022223437253571897657258611437229770655220666387740270051709729635201174844669184616854512099273939854644082815312054736051532097421557303961857870189922450160270498160441874431053342084288176875745353298548863994354202125862237572652406376733528078169330032837828869351205059237089912917610216717412450843418487555760914671653832040610454198861170992283880459806748357120090081904729776600094160764339011920301359733248080005431466155034287106991572172818762825986705969778122540469425738753760304343884299493648577422274395401809449445500606679403827239943021602634343922003177637308996414794821227870865230793615836142850412665193456759732026267430907076521979758393377497293466122847473413795460642452517806490551721026621217625352888614456790078146427452061946979711696803056412450511842403524646221565903281015928183026667870537561367037082209108995743693022322985863491824187043828146919457643960643619880296842519523795005955617769243646696686522744362906862610696226455586383368880745622689689953400191335383722836677632494513005943642790276086625076808227178735674549600921259998316774509593032268362126726281156678267954927232033723831255350098863269752715501536650894241255299648886175491162176835067751085668572416876906452825932267454182558256050972342214362561429177584080585099979738655798029350235984534622813412208815517576711348690731483918531361575091195260876323303696396989790657714680036808626736120162427186447227183957033332231124677270789348507281356742348845508570719129106517195062975629185075267347264838448571201518132450911989496620411601856261754394140735231482516864391056049606068645572942825516233045043707157919884576288371799396072467800605013516693244833704575454838084512807927089943098132706858309965791855429024096188662944923017412301743189204325390524800441581615278006332251843986083136401545275459869934329960696146518407003001846323576291489639763101616598075790910400818854186179084033152540047058139415567435361549587489478279427039269678808462982069798366035332605458894875196064090827672866047750324553590985662667904363898286995559887716185722380050113410819640896268119273651624102634893398953950226946166365804114507634071483553717576718987487163844330993167164034906760543666222931975500314206891647165557819476051873049665149062920888645620618423957492010826404701370458983416511683298148942217200032517948610273646203871048935755130750266254958850186770378977873647179360979414228652813356303515618315330296969448283083551500308231780659690585608434789930698270633198067893098290281051317262445020423131692539247424954614430400422317619496657965398522003799152988399359822312208757873530262052926613551376418173722453640199625123409170552964706601191344309304757861156820459171054347063325707521581640179459573661093221395547770337345001906746482204822703526989444601590228006971257530988897121780708367935653851994511052022833410274558611731029371343726418187685281197097525311317435677175356608000244366467748955396275546957129988772772669125522062567248953318441763859065746140232178683120245051109274039549141263097988342944312765004473238933962956899563556196277933940018321015935651488569297077837149183233993484964062248878128860123428642945472125782751105769644583847005710339929834821257672536300611909439593977215845279304136745024952865088397242683774772546600541226662093984484988100647566816428947090632970886356989575416014680539825881256590077602472753313079194759091845432227998550176443114687548808801483490466764612400912198230513601457024478516217628884996209338359096477700560877347511863036544567711955161896006783568467096837796800260710330498775578693005153300880701729335571431977554197495001343052136886720649326830775170348310057471472695586612749981364296413730243953366987949307807216382990326060372322973453495889498899194306158284759695310150017471746619748414345720457407384762906818003405008660013200804117000876434659704339245630035119423994540775339836226989846673306199038912190782225356904149951138322657743581408375157827714785363050644511338620223406041790690961705428247307235414170110562073370297390615843242169912214607482492586520712781463288317192262687701169042205629689488573003992445615325897928540232973309327718720783112027457228160652442017277170061212664393373717954026948566578851715403621437591948402472857948724112845367875445105737468220219321378183717384920684655646079796414996294940301068207957159890926068945176683470596999390270340993726137096866480440667349825169718305897033609048777634280430042807264962320211299573546010946622902548893640011047652453910616503351220487904275149908167569923254674679870170037914681670792726712063449201350893217236662926742798452149626327020155729266890904936655471632934230670656080146408979223411107489768631192086893924804747984152601773915126557186080259842362478618296491927560063780556652972109434591533894993865515540436116951108865747618349494220743514333658821599065580470313665442397936669552082551958331727593613904354093900236200287220800159733680110235985715472685662584149940638643033179582475203236495479636271030781124425742118536394430478587940485671383245748008411964197684253139411478840612983741459523776244979839634074595353376701938418728668442772029941823558364078079910519749295326046652063791021030308210228445852249241613869925126954736123487612549240478928170425138915698571174440751546531115126280678308416892520446499006835807793001127157325708291976908840913272240835435341520599027333608523263706160200208136468890788719119210278174366071067282307692759338147844418772503908120129873060483894585727842780578692352077581933850611494793714516099953823179516505369554677062577518084609673970151219788933239318517266653656661323405016149676493604676814763303031876948394666488079701996098027576058968298239629563991930633050295228130157625054485593471770870997550181851995498977978774296340110542998609204057549611706031238250852827355632010430236125580519219664034825181979040045755176471449957363477160129688347546095472637027494165929977314251590290074883391506103608835818503549144074076561275365263663211207161631987928996594880742516468747340937296499998102590520108819737158378516329376588864855616075804350464642351018474260041160989876231975349782890072934147442034772359102294186295384509939887077770468169122747032016891670678182262492878612322803453369323423126365983005295144195838222766646585863865886053327016548987370412765483075105536746809361520593532875766085264170552232773965264584883230187416544655498156608828239633998649110879720449884802540533432057810637596069446818443744162537780576669432505085947147873955387164345996523956466625957680936708684962433572671508485919162996716992851022547235255696558478884909829497007817243406675032672963960276852610785235007523570674695018530210903896063644886940983325513498947649583555460571817415067583656276836184477789284015080233704297725029426938943237822388894378114649708925803560595042698831798144741059843268989152763848767228831683873880250963615978208503457119312589059485189567775952032638360126665701166682879482443009873949486541532780248039198244533321557704126645395980440826279309668776034141924909349407884751322975499220422432380352793806888123999622301883337822022763041537489346340012357751199530117412239229244229161051094166564425922418410498545592839292436574724609091286847400032529169890754991029052852727194300624987163674260958815163778081330480352954555556767856072668578603697857855935997458040379467112400829452593118063589353452047685479344798936716705993598464313919114902022743030830575499815312075758018746091407555547425547111479366138734939306190111986542415362785632372493675394762967004690979732767007095883922015615378577777574931793307036934776768693114280049685241952253168556417271110495065414784952353738665537165087351563916768103954440763692331024987728407526689510498991726773819143238305335179538589338014541878703916973115038964130354637580841542072749783806481565932941083155659117004601828823888866450980359394020026595451623531051346367479848021203791619849339989482460422418317553773990330258165570934042173284244678428292067264460096757258173924856705357677602038023289855068535064357161755017208772327943926324037395536152644792266938388637160354274201847591752127201584411813821784754395328005585579362720459856028873659595624286696894426572790365521863716898744148258075610226959328322950876948443355330174314539510003862955653597668922206926619181714376346837740272293353885712804066140276853934525764501445091889740671075133976600332328237681377464776967550922217783707636113111602603378650281167320612642435296395223910544430161548078749365332306546994721014486096697288882939753722678035912999819283839112325322988785334798832882360303733309878705771933485843487120911568963324236397308171944293840630473213078236777933602146435053005970898159604297852628246844119445636599248913371223309572197284517748541289383004824398619183320247510295171499186566626296574383619997727928967711774960365957197126161999629528016533190451528061403074038693058487886712435936313184227981085355689155334564960507457403573311236871904430521988304428972121760342382252502599241610079071167795407272916478867177114716115021724019615881786006240673658578705371265580591946279117558674217465602013564871171071642499627940449334913255234229096207154367977416742313248756632818288188989251591362881193721842146319815220766392459340867024803473725330917089345456189217894737925560203668552421147478591593311356812720866869988297136805154946673322795441459546759816975815997220872677059513311444789753758307836341252876878101029470944360622357120121691102517136997580090255140409204554548757876241657771959517275404547176021827330024218015756461961699330933752809750057978952324509329418471877463843431356795097454198574301091105076973150610751133681524856559984914604836586588673907773797227693899699327526932871929369387617059509860696083954542169908768644588151328914438447212042278439495970556567036826371963022921541163318160030934416589199282809691490436944993428289949492400419158495648067663544271466464756491026379113705230261852162222989960153690403792971068497952861459719279979675878303254543331849057054248300013507998675363900925799720122949408768720338396440887066137583869151139224476686978413622778820470837377112397601981560938504502934261919459483177928555546159842487336963408083731831961462868471443950713740056990432728406416587358531013356619367348795055999069343937537003553534656292875014023560746834415998902616522677370880464151842812038863039442247495394862658471822404627402048353787186814219852946700781217463948977716171895985591942394688085263134637050072262054489027785634524554950196994568031011010004975947362220707813245386068826932381305065615540261058795033329930999502271853776638585392707401655861084315978193853033337531571892416993137947633860187580047626038538800174290826455018130491693071782185438139496073025548392341403048710594491384586748692918983205509386618822638675326540846243562699568714150768656677446813059481414317844274025141626376136733940103689198566526571663541875014431215999111360045109688414304764338208594322870791687585977183202382455831802699599030846358928685673720167600911315687332710971908029655546242714835531409204777294567927143503322488180321606496512816530461259611168022533692941114365715561638436924256028316816567748429040934095803609007653742293940879265687035082595380699750101934676831725746280461165533504982186415505084816390653490264112233549889935646712355944513170948343146962067644855076350668217181444244465292866255887063926048338779564489083830093039704149407225665991299926366508986056621125994345459975000460107952702768417950745869267049035162720408414570722932700315486150410175490883548671756585035230546646642478498048537940635595093112208892121191007610031424816385112176383456577892943650286486685028232092882400382220080215535159771439321513656850106940148113813408810373142592062999131728189501720621159639925544547911479596788102063144478719390165496191016975397640920341320026784803738475839477802127606775731344954962961175415083189835604326163159238516297004986934446093845940475231715714107658353655427543539993603258973603178489122485139993820754516096160589026262160591576216734173017075801278704003179196688689432011301985599662455039287965770130011687596882672050874609665082958181622371596440207953548070454931486981405409452321013947454464170047969308645004052893604433682418647769747413678233125826568550235798989978784501974434933471446342082393261992195922563639777191551510335627225903611785498866716821249274551229133759636575514796720745706437245192013585621309075252920729885597667120870339759210142054940220047617365759561684510477476282016663612861338263537841784056518243358150327047742354701456936782483504845761251896794691209762863715069052087554695119996737932956214496466688945380188199211577765333647275026224108402756063272513583152323106140884494895644557391822261617750017928635611548720805284173650700936590082498103321226930804154201639872815480657751787684330553046711523672776479019881155218372566980554946869922939667714658206967409720693288525768982272592052827419746804363148551285897002626748027261893262499250315604980684370236391900760211633337421626425197286186101903936759431172247709266624892938421405462868826552190245935579552900215961702891381724751403001438091052395819807178149124214051201147208352284134137498153204169911280887685887819736911826707010274079673382673536878170130642106756776346348036981187384617703155508936476880613645946915529485866943295427087149771150004176798580861589558626071233774637177425232341924304167445817912427557130925104238699373513176934343640817782898005874475496451541947122763602290742095160815543477832181264062304345367371062946227931438451529341170712584442810149750119280231994250123363433261932531657564983848809913177556830363704536366606800876656864944325926153699303320404403262239446813736510244402647889723054509213212493201814742149853168803361827518587892359328587293457036280964902840221257982646813342553437059779445452224681837911593019702523873383436428579857581223974915992460202282436537675600846016397423698438608595532020499582770489216001588532639488178700563736707219168141153358906384334555651842021005920433352479711809868216656885425959641209586230702979396125367071460250284540925057937061693035451621719615420121047484337523856608809537063064652250477743570976053014322950265692393125748549426821945137040830123530948945439333850626949673892184351336180365009916027046836108240662545922261544883851618334290135193121626801692759370098599825385165167277256892596854715851420729977486795818095375485277151611666050486523477083643928361028590163283917330324182422332297515174072959790018321421848681072945830741848512407669977749426189157476394840044796774705076666746528849245714995380491080758814731932656899059564023511361610133893152639246539867442744839732666872111044586576997710042316641319116221284928389278046743838385806952155150772580083303186791372321868711584216629469620676547009306574892669960290743446749028709432013250094950322805710103222923585806536699033872200916483255856233692360724411765921790672580969004625766822594565859659422626521226299601935515968397760058825744011990814625972408511984424793312844455126878013894635942744953160868353776474235923314803668405781174204295962229589404509977421006893971671869071244410754291118055650711754795723942007093681129609865351375542286711230565144322175201028260961633754194736744975688161037741630746300790148000325288215658560898726957668197527935061578930543536135127538509084331873142829763516449693981884533835549020039501228861358442184361582434443815639449370638169841089171722322184568230730395643312979346843974406737508746737067600407698923736911034634080669619256436425411280465214040180415664913561652707108162562763522881585346183978677412888832893428379671205507938532015632110846929244956972559807177602158812774838725609588919437117322359889742807372564614025352844676468085551244227871441235814642374597240133021512853206510465915881086767792685529128505370386041900968957303311509634470921489887208472348264981483401595846994932543987110530402029812378019683113616510352710882155702855555139332294105646427272073570368896126556801536672157902833734204979498398447029994141350173475709762786000308114581677142781853589466540058985009374240985066702962567330586263435014563413495536080023224684001924249800349287731701237737269380312847888033404538247913621722508107260152922290880674066881466618068841390499143137859853819708236500918006441846214810900567328559018829142713417899038753347041487039861482030747696729231956254760783277583324371479650031783352841985444751407375707190588217105952748640390630330078550964168211446700356462802630278965766649091778501759003629087169011293632716084305820408867934949222473932030462359896192736768585682231833183518245302897557953837372012542724623083440592040729021239897574463017729923906216113305585832516296933907682503535912935824897317694496298315415496537379093882862670728549857729919615471120747441607795563330745904395020754054115483783726797971641841374320412390547478301595100540871021676232580518897743331277234450441571635092717102931622553054974567544185658365080189053815030866708521486204071181867974563143195983069315359385618533088200218982288246926477361914075825203247152166579972648500771843043260243268578163172129482917462187517100810487697020906685359247272550565470051415290337930771079059569148332025597618260431734582520937977541663288330174135400207212347453699380337040946079282835004701167065254797140161368270136646530011034804516674320369709640611054265573851408435933271038668417678229183866895760179510716649102658891622652440973175311559360769989892339069781195391805218230552645505252060933901824033120202644905445654106501679967042259126918380960185205961498476914645559773002757153171705744893344522446460136742510026856877058688347407738664353586594177638923456336037712588718176730417144815078218283040107937713228749835200047445454109030312889276652521028092172735860183812161006118662188717191398186009840380058712625588109024638654565865709520909897238536502032044513123992474188069244421331611265687565449559514459486431817781777265051909117607684077795600800328293319282456027258844315075091406859978310321325086100449990924675051482018770397106888574078185790725888575243654454075946689930785433862330906647029055556745175528673313929582191002570810497837252518335731621012211116037893588039896565142152460676515444477626910567047098733641078348727270462826472291230498714647143985562109007452831403997490513749393641813166152421323616752609150733096756022339583128574815798054429815430709208590716562228728436787258150827517157122913155144649190626328626432727263351675862396380094998756241535024688398000275345002759982665424068859101495355254545357280888760876258935449523822443949998826124497439136741112454456649646122753487011065213951368992413630005739374370036613647606592989771938524994383501002269998705286622635000008571464232180609418722043115782735071733941046839350270677104127205298866895895808784031376411683912800314380861887410288254950936906527249868122793986570876044022677752246606377881556140906915243356529909617859392339529895025396006067584175781086920452993540993219104900018889167113181969988128641163685275520574088826463500665976320300893528546537029666080015473447069495615868147498103240057744674306108069898586105899084679902017798528545977344450969993565748723899185880163750301471842398195793277459789548702298024275314530932871075121656742457635472169806331984901600505503786487769686581480279526149127637318154130680202282886924294568414230285535082231948046034642869557705032907383706295486574008825240058077606480177428744495206119526324301932599206043310264222614607982820968632718591212847765818740683952530746627975053064634489332522942185115261948371427054916232731121291712379849961930698327129952619200160827048074204542238523678796465068012975580581742965800079470982318605545332851087556441353397283574969326960243721025928717306517896637927295669705132509551598628827751826212480196494642949910089951900159542923860042632884088442436506979772050977656870065308195796938421362106999216637597350300277296496843861172833210211008693342699500431187296452018926043818925541429071279385969869758808213644419122038442230186164743599652599595658439162878145407451403868096051993392310210911994331031230790860263076188249405529833851094069428851935221636675728541411158048708695600078124528699660617894065068716953423919408980889837639822057221702470821282851801878601140718407565711857520260595592369177937206327484018892946686042298145304906845337931582877954119298877706662798656844048425937468006701927419412161831459237039239408049784967200776802680697370808396995691252398794704923824457985518820275194014381447215231125809831787123422963325265888076961677428877214242001111788771279160868111018535247536678528328795294167948750256869420508005007533613342425514371054741639353939054147380303579476346251833561266962907817004922984934278246789051602444730755404936209546855991208508017169408848721218317430372781163382404091033209232387583620495920212746028281401223975614386563419250208551917394451867104858237264681005331648899718800417986650759656631426369363630590005973285692361026262888111785864968796710093510379869101640516243965579459855416949358993610645527620682171263800666800173617480293576087079177216689669484234805483320302145913802950763570884475304558606809724992193500869119607905123755725878331844315984902658362328770956703648532926442394838440740984534593797685456974343894702511420402756979382377207169571959064652027270007499661511028791716642593864989488964535446603363449528401960190183226442669310130307353793218025037553545340566387293467141046948102624083973023243808913340347402449406346219908022871674226708109270109183182447238049225016272705261110821334748940836015029945015570750215824791269872748107209907703917565304069666137255666382194339849691566999700849933122226648908298641950457606668959055513759981610882209146521329626680303828232720058679686678819804914384311277064514972473699666858033561781246947771116797997282608697017991462060334031186195552163903316769170980938767113465135819365549959697768518937968384184049881097253775493520548622414242216457322062642978845168654050463733454537561030533718256536961224169205583803355566676984175330739827344601511726996316489242437143580237238643930191330539221732514472109684707810004678719051170841189271476615743304633243263464695530677946300542611534839485040001619412535907684779312624219909967076004319420137406680867125936954126342133927080843258208887094729370935595146791074846989746991867528543347198784696672433695377277653621027520502944672630186884053226358431160850972616980301210399540558055226393874971594932481796363993113654041194824556485943165637358320182997901669800980690283826772391721841886031880273518240648663638758427881206388056480254176244318341122043399252934692060239092980336028652365401712987745849978049405989564839588209044081032544167940503310947576744082363447897029836294101383145454395445951638233938431112191183800887075356517992498847120709992964671253359794773085751641869811044880960558138842612865077249968484267772012384970932786272690247156812922574507959728875322978316996902348031762665861369704692361041277176748534468111260565041474516950607041653206916605671415061810957653394651580170789983922312065673515642528654960451080688968866848508282219838703124460230162918032966541405855898807270897200395380115935428834584342826261073896071159246483559010688045329285141994159240040305078774807204455974927370434436991553623463043445575643617630387960851409221245766688137315096185510506942312888877494379280417891290362218822285126409798749543968470466698267005754673397012450347883280751565272773973129109573331741619530912269019840139353273897347052170350800200736684622078363547587267491310536320045061743359891252494942396069371042318636623098537742009479902086950278467275406124045425221998893134776131291548008231659757770512488374064821174751948371141702013960420034792417653126134118222928682175062642394054221341353193891221230580168247639906100061771145424212646319517935519918063060497270880720097324534187929026607396908973589676204785458545495121848585946840673621017369063289998717129520606901527654951795027514545027781998576362617038327983561887882193616357427852802934889337027669675945318713125880209586017488817883728773587588595992137827435655142102486586710692483669787488724445323716805473226984992370913281084999645231778216096264512598690789350862244261905654259649893809474327381201121562911836379816374259331837043405653171292438415807100513209309133500271372530453357522073384763126867763591999321409146629123258579041535646360414883172970856592495852109174788212536289999250460978422275564054293088514215734314641765760789336487653446974433896695585453163232714551630921596012136750414808414329157813051212988706146101882612513063351106444182671874670660215676793731351038368723551085788489484745178220813860777615397874094376964526569048475088842563370285143287251467413429960430684233602946326578279510433528812815529303812467768884922778566490644246246804991590717281669960782177033408290067285208100551025848118452422918928433766937264411709037541955198721537703353875947962731121739009035765603040189700779687280482492322130197824500927687864321823626410096903974704333473814084359052808422681309071079250854212652905769315783352616465744022454564446339134526377602664263943498697251560469670191260955369292910000939735961068322722064790416075805506633369872168352909098354490819221827420232316325502093285248023765799310460713945064752056825714963801497501285267542476164563059724328902807652781589073151691764326894117425060441480090825938690190648946584813511980713030556383743529198429829091785885359515054027865051506130282114966505691428617180429807751628526696008237129462359700714895847500209373549958930603252968833776694942804252578728800820739547702719915318728871101268557969092479226072251377575996031535131977537174509346040000295221011197705269146151550690704246662278405026695276252376959205500791846009148992994475051999694096691669918158934567982671648240029455762828760378403018925167719293429513109916385150332344246541018850518101554298852721878600117959368070197717320405302899724830526170291027196414432913435009751300701796878453370830948312986299136176891930022442170626522851507468708553687596714665980107856102951617014938397004559955098434538235095786073887809709045434218153419928309321039286837380538376627246422318637711696782619340932529453580729714999213350624118256632139864554174156716401839827792004414966424084825246340608146640132282590767580937592356367017155191217653683313395747296499949601319129346624039324464293621420120505910819052158979835055699531883149083982954365511622167177516426427119172836661876396900113856439870274653736191137427033433577808302348191100818000992690707467469490022421368898877008933251693461254668340967180105329568922843369444245851445685362412316726256992278189635099582284552450380404336176822061802810268895362116947276998333271029421762988120187356588607173653609928793821627245362637690715764271407811738959662534818701312712797151778702518988709029739284957560347452723746450522249822672586902366401177195796135585956703527929972128754785613109601510764252726541890111585827420735728290025323393109625184347476169041754798078894306160614129506274043446749457483340574496628024915035226812065085082436283123689009284471008032349036859664979261657228092759687561789547259039078803438961711814784773631259440074235388115590308939251489605346124317588587363318481570039692183882374438535442666151890374081107466294682749785227481299532705094021509148723350798919109264934137991388149781408205870096651515603959788073163641961182789992902492699269441394030550373110827815386712905264639378206248867990106637406127710217611634786218082257798839266741006199604754994379425282718840216960917853948343207154462373883129130727384396900528073010909535886675736362817838422700731581668638910104325848817955890709835092034627223664866120170326853209600023508710051731504002582424658355755179203998335444882222296347950894243395220263278476264186452487750653415939331854938061232560840190383471759834448856600214875864350452881540934722335682339225624887970998041513830005838151145883624944573672940549823148707401442696264966620272487475774123508656688544748817197754630494950131976987517452935766793029338227577414286024559870327784419570309123468628281882004374473689568632380042395808133379546491379437702831589491428993640467428362605117004674419586062188246205789560983585599259636027015740205762725679497985365264190994187963177114708896880813569818894211601262863211939483155533291373604010980104522955702349871404243369910806436327396378319208145166763795692523631771038807070263558998372616751143738039687909836194376375005948524376820749647439262656606446576194086990438981195394141148620783601981225963081380099580582686951121428891730030699344629894647861145647820073151012258540364551231421242157298582117524554335882103012551805678719574750026777219572081011826091067499604528404856966437137135709390600783714471387324239029748049745303934533321977931578876585350752814587783452346065596930060715606936660263663963596844323494352250563338468682913528307922700154500563380822665342334496334118162507529872642878531973754873617523134360201279437522936191812608505551735152360184877194713822506803729345380307130588827698496550596534301947040680209655265220840769251084871204235640388327907492370487451332542583898837881193905240917650341274101378835752056963395786228218127928874370995466058493844229966807922700162960646892235130673262467140106245442469319053868422664770559010164527029473109481423281154445077602426926816765387904331432218227926627559422702650882406608335449864983169114671344743680385544216650649192524631796015075119764063518864756668948679593048034224196856599154886427316790745114499622283413109321818169267346621573502698190747333220736137975083651297808534750292685327832424077909390154533678964169379134354645908749279797366532933228348607576165124742086573210402845634063823164849842973941125133637652605359963055732354655898259278813771607124885025965960271279785148831746170199092902662337842183245284629926829234873952879398750795527127477207035979984140480859380826819309409680049076686964595694862079422237655595404522113142120787807933115961989334238092595504179639720271031096402832958700415737989634736453890153906661258686785506206199301976938724130651324967129034147753239956020170309603696123177993734797832978874924976613312134445886827518934863498607788940222814916639146620628546028693200817522999265316583412907443516435038443960797948561849332401174576822324620422275579211787062658915117060771961315138975918954518666055913826245405627980145986532335350311173754479683090835652041666945954805516084693045087942125948201891526890014394529196490928156442826686606040308685636585236668285913779512345408904013940948067310084206421767595598461695005774835915956451652444797825503368867915574944354058985196960604998908928976508845204679696966269127513193304781314046573622824725394069439196481234861795949828202757377864685011729210710007409899872484725768316145651378583838457815966837441817851607915875121101941585491528541910808620079382700124937241577707692872214565572259885836558755780383806033639342461452770503749804319553457105179118986735021698873083637265160571149929598433519535998421739093921568538240890863042236904584751552473706276326901109841803991821678088071998654818064555075039169420169861609519772935374888270444227130133535406072140202231738093376299404859836940927618482730765273087778121351408285064221356498217989837280909131615961434911185995115895821524349715790107634366198277275362981156020638062986246522325909156217111125399445158683460363748802420725834723257218428394194518357799382719930459472547389770786252246258282569437316384788440306781118834846598066099078718595912810200076374248571820592116705509674366385437087853662997770847380773062871976554102125701822756088177578652494816238288823154787041443840521870292501921516888196817144293517823067757606422476881009820432881892952957495691934339505208138718712789425844025837478154590365730430294844437701303341812052466333230950998607464579698772632910344217871597578877149630055167471871293359943239643381341112468906167769723054516429397766170761786710246612666247009462285835529622326201749801222102603590928104870837298008937963267191942208570108943260120962889045907440149733985002623792141056761886422237359270680328045384662426542525916399448383465264838099237512805111398400391720993155345668774761122338653866264884630229563418279514087836637202605974405568220139185412354988203046069850956547105425295999972609592278909467065215940501403865641990264260937930406465086154423369325959782505004880156040090544966311496622657942194283517854644400329188881824906660332860379832734763063040408746095800639910281612124864952829884265392933893723975774102411655558904747296064594982022076392806157836571597528340947681249938224212897936954512584440305347715725926026490514542934576691603769318015451888055460624967748434322484779973551040841042979719949042231046486399435176659988899133587795569333199455848552462886512542627221453726959127776899671845465485336134963637470623623960004538447919696911064755013935052449108414710099774637589644714956981756012858834108141792515668762107379652317462060438574160709013809307560357089587200346595628245361478286106646529567165528148060998282370793866096937811507860280225681388864511873210872557941758594658259777424863591016759839877091980648726405721681356358207637289454520129532932348922000053079025352803970500059321941658037668828674095543473962632054628187595729048867675045818012474121009342139103446419147210552781157157157508741860276887392919682555681155047749955595002395379968115713350208473978856547854491069067411904412248144138472756020944102104011731291761645595498526035283764813658884720733405377468635244990058360165725165876390930423621858991039455259502913458308119851854951004682770433275734890244556565356540732508395583980055521199484035497637180161131086879959015960916317297789705372022260361893103317256274799491232283496433903348865993809051579677638577356204499365878609745404012782125135174415530010525152689077980454134308011995424877757128358845466812344752638800480370827385989034276740269854091946979177980251405813319903390942595135876018804701757786621861357859801502665008360546520226390258684665904317321227970046752918610301458977329644566415126481962484348398247797171345091984938133235811461005388287642194937010666460805798599499447819216318109004684148785277589240889951714240437453637608628964070019168115107678854471212867309173842678769112621811633912384963866888660001048840838736042922751467353508718004011141591532260336401584804992493494286848621166520052096655447526305139298118768813516263255175320614033157568568898360447399848610795395445612293383150625113766391819854515905355491675957086701896628808293428737440291782950687618534356265740544681535413784918085897490338617657316147842769472412431227724791770569081687489105294592707666536122636177250773323081295021410547991653102097263558356165527889874075722948708877699829487028939198531441580685902473928526248854602039330456292169544355677302139671241771014066110874456373538073011442690995022196560341530852567782793226519932397908956721043869972350252033515372939676407738340661330578335063445237502945486198681074754439252957003287226393527185344018257594654638096573086004911787918099789399513823930590550040743859494246343629829003565599703371417582211380097589985065814774871670130838397056237101692437907352000466040947464233045202338106313830094444375834408989941309627268160875313663373865748767933935833409783138676486668406045812247352026150371690193282760043715184420177178519355244745209554950095224093759952556714272241205248307851513737227978181751864659115839943182994345935447779537942508976402801897104149547260830233891834405919585289783651106248404409543543738487509536476232578231342714654225346776790309139771852185711561622264697002771623855372034731396866828323365525566571464519022905943964343553159410278507082162180586169308413267005819104762218844162296713078100203565226299375744614392672533921492358629677785771550324584331322737911533595591990150462820405057981212659866036892834819549198726816095420791246061211678553400043907657450978550589268783311454620855938191778269453856600451220337024522307662533801300549669267400990045833991239777298433939063347539070183873847304449828964802511226479355510066599294073708147409807691567407582621823218315740539517147571368557487303459221019132020298845590193591443709549453893897435870633053871088132126304506427761146947394077438272135908733391339282320468662140991049493073147041404068637197323046220710865916265971367260438231741909683828563376263288396724649175874068931796265152177861854324784318191310002278017996690822065879873019160971456814736320370910718166898534886385753441296157983160214840773554329542695550631006303508176336658052169659771450691437897943547469649875728120457625562777544367817157260140662725995015632262110238911909892239332526425426924765210870958318585890312390572487473979881472539188975075429876577783447785805687566025316357920588911928696950409619584970574795409300703550089396350457033484801625869688818648700945742883667424226599565720893235005778656198490621059931916894504385447452586918103541108491065500125976446430850273073925043160454070289080787356661876025165326714373461877317243141776215847045842650825176884639386154329980012087157315829171588707726155975369555803411936620524381878348466140570724139974600403908213440406856044720627960527127616305836014164298096210023270688806374670831043797528103771432751021746976112413776583538167225832015657383480185922868246770799084598815716136442675188680117323208602989283159778761888671159101431250704169059660755762519450094644650496432794464932337782917158466483068677252895022396643549661728490374065724139964781253817606308226772938492724347067816947739016074361132686586842941919343813994917579822100750314748445909357909323295593325427948074558258553217676253437705058678438366195404656201000862594239064332358197135952845173329583147413414965884509408472681641586056042867621649945871342754704990767042591299990898212558835321567072728564488858651758528019078337077407245643235027416162138796173259108755084429138702728015267000303043242142623347155228208268020079287742898441073096619073787679107072042943600534050597703472725127297133519453407435104349460075851387094010485590567398592995689035629026590725613511522165492468244485648943327193961439926697796795931599260225744807817073348133031416125362325918900093053020824521248257673502733584823389075587518167617082720170451079513070613739701276659455621434185362789706554641302779422765060925468956492062565164774984372576804345161121874876500955315075057806310193120728880882685531145946966472873170982733216408315892589427868976665458065392102842283971917067141529086809952326413675779832931729354630569664229154825091059071199664068326792480780241183430957748176554517521525862969644533817454375885946155746836105538308163469230110163850833712268078960225648100729917922014707444985933171563836420052941002742227375486224997781148821526971948863825832191061557987448633409807429959256486541983720224350764114159899683472326208345437693932678128250282346926615526119792229220899028723121753191025805545721256382669644095622317405678184224666957774942249043946471196629183351900394766620257229293795568456211518651241424185679657827190860016728960120354430930017492243768573554241129705158826171974442202221563698379872986432941586391004995690990857711774691580283229193747342970508856834844898233995252669006725802626573960099184606965989737716774456463297651881845249339496936091677570580879491503581382680627637932698977884029183305518655576264585833213341154882270525900504468640947947109047148460516166460646933129336657844166967723597622493270582182001021576097308427793343355181037168936064660608390090583567972108071398401244443574184043139470030052099312935148854439566821462346893421372089724204172521463428337407079886896775912524045461719847936234319539133356837543200573917135741177328631313255455722803597458522165474792801474643688618645490759282290531420148206243676612450103929768535399676358485437599692604300774375213691995304047416299242547176251406131752475344116156157379169795011878913898120522838993765113789384350649011335893595119631011685963008934092203308925401847789563413392570395469466511667476041473909664431703302683460282943773220916957016175385789660538539153558868160039987261499385082594599116546634527171687707010206087110050437691190006054320038779441940140260394511568654107957155604694848567724835497036977428979647181435961053043855673312706045576007709438327217266415062121264288991289664370710797081729996135830919292477674832876904925280530186762809790211410382738947933764969126425962237379071412186713169051131102146602188400901690157255355689808555332798064756785280751868114637946655133971008778724427468533885044150061426174391690218676767727364889847967192366276127657994231566412990683089942706246152836175494790244452395702331676347255270803617638648165620472255385389647184004239238092340104470275413615307380766409306550146566295177967424093324535904779370868360335009879011101324598717520209549487691166270652825014332490599764954167821254577946835500808200787637242069098163912240423793526642758919842437629886497794635758342884417644592451334009235319580655088786446306080467429441306602258710269044470743673515962074973749804832658013621616657593114506367911977930092366242259822184274249475182927997960140111613156140211124646004696072936425992455932212899099837911918602958957371208044062752234547200275817904802761478962402644444253080412286197456912105500062034266210282117518933211335619455827870361745916270624944908802773172073699887787193613710206383046348801233334754184105568659503001357480473080572150569335882674173238376143213165906263797969584008719654656012136877639618603982781470707967720374529464949883275226928701895515649696261931984883178872421193321390214593921839920838930297338310581818620619825510655973399981375875672461156992487454876445985984313575743824815276045031210256827474675846002311883284906837538969170388640283993143984592478374820173940287140774515305480561413332741408401897510610529566643977436525051942632887119546884200397228155816893504580524862935672659261598300706692674753870559358491551947649524958675852987049522554650854992459237175376985186848732060141789651216118958877382516491072431326796127540402467982288824108126701581446865887946517930404761331499033679094454046994166491422024069408082044976232298446711487311949701027702583257810548805336354615943843541663046102807975830192728191761348470346219258751750460153940469129381640653658455323355353278726646051381165700678893860184259447261971990182929147182064556754654172840678606621211676929951242043127848364710508787120726703409334463574533215984923124622457264952421353468758360974930092143525671422948047744283269728020194155215715207452015871676184434181958285528333296250394715029171401564975502002238705884970522842853655728284485054812781170238423337858344862703451539970888762742030883810644902869415983958205771957848841988843613174583292671981897779696132610519236054851438959210759101749102320383577783749255914343007637009990644907129896741895344297901857890755459392332725519879080912970443165402506441411669858726800018435894046608984969799115243946840498606527669221332378920351678160897747091179018384423079314408906384879512454998390688614586186589579494235257869514275318751422947352225679100423893663243871091494152648942861418398395016399230829120640306925464089695198281642331882555193594190084708524379329165393372421172883706306604627956668482897763809767969824969245307391754507029681630681580303332361236354486932054644699370940890303096118423071290306916095414408485341669291186174932362212098339157504233019108104723791542644112373620508242074226056711441882190713117678313862247890398269634178061507627030320614134967905273578944314298900509150991350070133573396382607919051768764050621002833632124553130910347957623907719977170657281648401623871136453945189151253836167576247731338532794866282507514560038396465542055326589179247298668667538629781646566420263619316376330483957874720118982658261422943276478495707273598295067596098731962932071186474520029893934770796894438427712555753930661898837748373029653135839267319496973910489649954311067200916695141683051466616281993463591954794868347809713314114889182070595234360929412774417549223730145002720022881975407374853946756173599912939252752521347269301583647317873926886284275874456519065874115367212643139137265795753592558644508502278978940435346278300054924338626655520563342754077389252360844112425717634656165997484565091622434280533784077062497490495037449790746640618277434043968394665282267150116352256966055318237810163139317161957605799327351841757737652208468276683570955125987492651465633477044324073335486805594546507183551946726658728249347218870585964843611800753669321695341697748650726406755973858127126259659049762908884929243176840998371616612139516385206966643667806866663446488499734896823153315202568557374891625861824031585554010282652385110972197315599001376590721349307209098573500356945107061058920051122797281209138545381271756919699270337015176809560604933112082178245824914211737363857041760846733023204672846234105208536059234446939596883638777917526532171576400569060943884091414683016714857395342958553896332502143826333473364955067839693738394212780989267947930174792147595915371470982956812904627189986226638591598442793101545530428296204814179223749670244036145637561783591256590716142199912037826967546461506054969117082211352589596685798060399371585920718695988095047476096274141129394936903080518479097485819709865564570681126653256673839316088533560518102416980018317143252800430162285309738226891396037015121954528885594140228827586197825677919752842373088074960849294045797460486952791913690141470165627436342861491394636094230986613625085192938151117572223161620786033897915953257526334097761117155483912284146162293945218775794288782244369107286670562618932295379507698395050772458925178012722357238066108947978501699092116414351033250034484445891466750294544466863605245957550678900631425902725983119568005737604722585223248668144945952379531122780613483423226421856656214689478503872586922693848523965234201884148103338716961114089243070862069891412707681617090043747780346522436411982500563924610602001147052662508770654958079422820498547163161597051767622871104684393372305832589510681357861756255491270115035779399007363694198925611383469097716790572176602148150573087846022589872924173407614702130427143840623410375088132875403428084581484271996674768594866848900604277638539402543056218521167958251704992417683362585704858912838534107770664879120300832154651172121654184508116775921374537567017926932834369713363844331925812773424166818978830232425413066199240959017713228193990764911106105820426420811626363271524457279646768367846590412355630127152542636237199589363188927162589073475711193251489712920948885587224353843720445651216413897520737435890440152368780057287188259017161266343585237815431820535792823495148692618633873311260733765389464435897841332584103208460205011736126540109185801813551142445733242852433541862523086903627093847951652039715080238413943526097852893446553852226323870342876052575572586770408717557472206852989567409491497843695725788711214917082120579656373483350599350147205341259255182931633299484572150446686759017713780711456898985737420617654149589973859010257939237350648271503670196689967427080387702381799513491376311800616141209565616387474328457550307200521922645652649044728973251826606164635782327746830859914060282531545304492349933299917568046912732495797620487605228470804491258542478800470429306136318186482872982621930088225457530184530279543249684319625095508398023241102229428116311325809712259213407372868100367990830058709909936056697539633572290702422740333197649725207538859878274885573050185405309584967709611740881673074804621622243224432443038611838981252392938689951098469279911135258316460045526747555005132732985698445120053191652467666549583778545106865577366612762671955810455584055406225207095779408392738772377137570463168529505234926718254349767124023398531626835050930601849901509476254350232695145220307687552148526403917467188091523250988060631007145183724233619765793815611079487701825316450977265614218358974463711475953870096779738694594123490932938977721073199516484372011994215192388416332406872533029800275788299368270361043596904714168406704401905638132410911986060423500235872803174117402019477971308680021175783880084512262362423091175517322510683035803420935259964547528179074111339495537159476387302719499393279845710482368485033530439428592582355419538637723322227820782092351780554414561975473939777307377330882384739755207380667424514645683895564629427658616803126730636401581636609447820308179499531275256812223706684470096059838765062813335693733634645351588613081719686118336170915492012102535369054974230054459800001939690131758829543366930877646159566279059620960794336591257160735914365327379069347385519348730893584696884347976106626039796849061518046738539696618111293292023444004293793229199889822126776159878185452738317207864943820273234470485327876039367717888195620368380953868438281041490256146596803155077676072929872678247361478133930009893305268551519424379149830407200954559371278411781885796277880149649636553568561473899166862918048291121490887700581546102584160925532498924812074386143428362873667944441249285842943507339687529987753373369121627044270298163467502324365883713245161645815682907450151161665519514043834369773408238497785747146217330225244035977654003552081531434542506380284695476261022276217528568307128725704543495599185407928416857045502511315081100334315447622971881903821110174894194732448996907616740117904717479965644041297763476759001803176247259481379377821501902061401242301322005346201104502830667525145036020585651790096581172019075544779640235758374051227859988323581424110886711845964250654113490149481552501513718675820284409226615374193949897694056224241356447581232772740469165712765345486406130604542222835693084790769289768175672403357862658888151899159739734340066303784737398112667615956155325374062006066824943310893040212528267661152309353823001270933401286401459743567542100001618047260743006718068960307502604286811130833449513538164491212081233815942308530807338960527235017471473491751792565529180460750096488877253555402633202556379510663269128570018615285825360810234384672219142072506904921342705563105205556802561231072514230155546478801580359382517728676899431258308906478596676781617025426064208780756814692570863492497848506791956819231331114781477551014420947318288462824083941954885504569800032156159013756283248687215085502408025609479146776346201041019943425517422144969141631826141386347555420058518898718735648357089309838687508382645480158206151575674721457233038168323284438196668614768218230993763814451150867096521851310587325695870862419272390701115060840802717650762959539443486014883083864642916275600692834510180183180473607798963631780634903658401122132661567826693667987565537208071475806299602670862651377216191592559177873199028953173879168005906777221592887004603882398138864595188779468587735882108481437410783141577974250265238822236632610906479736303914731520936246701188770538416073582173020652729806385121774378321048479606536206120279549021297605003881583699088378586915980508468390930039710580693106435346744382882795594542070159695301047306954259607595600616371401198438688047733015575699257061471159783537985095998796202771887343812850979884448608245894331086288864282837579087889355577898238120982096461227005098406144312721005063297193933714216529471433658671578292411092252782001497809659189970231879723649992791906291521480832482258192119211037670670570174366828940066563485198897678076583199979984395440798248175455989202151766450635012292604629226640494894952545507760273427234306883771108166965225639397537986902837081931749369514742579922326760718941879338899974533171047050010842259782958991250727635442206793513473233769934143864029048908587116624984713261850542591762362372222864341755222919991277687800754774010746381905354411068235873446574294862860728870812049327400387004774269526938188302408133496546758722408884795797491633167536181150095123234479497091599383968422851778125437742354341996406509882910890997616774065779373444367683982214676259112700822194238191195231685571259420512570413999939728935202406887509529421033582725952462506088293283365242793248401556205574016519710493731474148613495803750395784966134346675626806959642555553871127931128832937997681178694930932861892652214695875436592622040487607832143946402399734755845749982051757444218876962112728904886633186494577508361384550197450521441103422721336334672879063928499896855730283392608795587148618700695626243875058267127882298285678348171572297505025308303542215113441458488610936805301213335945575802245605398487628731736633604873303672518883635940720488485230730729607745077824827278835434301888663318178235137976663466914575210653979613446024090525402554645526841668636646258768182126134097775340840257721876864812654826367762501295673275346160449306155635583151581469917898918972614091506046465490456099823161691700397673495384166552080196379254719899477243640133011825206166956222222293828578353742617450054875687881124640753242348925527703166875975955097317695848824246891509202222928567763164425877690518703556166113429968945593833514271751565955163595993085479854628117356823930228218570624102756716184028241361782543225064445580401299717586159065703884863602751920789942632151878061633008912335913909667853082345028987210788439995514941398340064809705931572297800707487528866377004479193950198053117176541118695549790404200124821142926693139780823151473428054552755754657297093178325506914214098471356119564679138649731854526626884518213868845964027427821881480932161964117119319241569663603702950200402127810668970721469115371623746842796398772683526650750051953948660587107142701039788494609761719975012290225773225565653573339284455367863218193801685935101046975243710245610964106553031218445611758679724448427142339606937420070348813929106754938425092680944049609953667326909126932347150038174494535532735090462889513456928630920867484354499732201906487045892085600825162372660451983790714422310887331231888657034551934057784052087976233530464383606406973018590997178541090705201825136811569552003516401300344824335031198512508424665891662975933146791645541456974414788161056136202282871492199464768530169151743694315794249526627530732967755950709873407627449062429576233240362630779321500819044728885162137925695293400381977634904938573265036950342255794823569317209001088011947006613476797929257773019005409880108886485375311062959605379197479699202530624253154412651483189150842196362715570525801365644570943228043987450929461875224762176694313285138184398922812367159575504929748913570769150873803113618794500310140505391069276815395054490612219584979556136314786894150280457358334145117107869976555373193715704359209396533199583692139330519599862061736218189542562251203949722976731905371676796671496159789267895212940282547715195366533947160301449459703249493313300272209835248224785184463155502456975341673502622705892596004991969347242843593973096040789291456815418056416843527624795034045965138027896445520284094119359701593667637837159476215772635357191040961929313361909388497369350419559388555318003040618025043838526944166329724141864590806741902791137788679627878411479328278650714399137275829077651776129444684559782565825632945782235786411489684906279635551125562235836664233778668930869835287287244953099871411858395639414964456923190040718825116313806332121532797062453515370074600042651276405427204845391881030410495188361876691470267176833356534704903330416047862299973469894548070289474068835114015526842424960778034421640644685860397663139704240420028360350307241366633270057374923167193166667595737886167671570094898150252088274920254146993835090368417827834905625125281576640093324939443084416506384364264882308124845112919121738557641122306541164924707628813142175604806233507884947999466576092011154976122949243289903605468094126700039293432797113136288811226366633387993241399979109041945474502539928865745104844616920089754083353623239247927780039367825469889406859756321496874899825268294673894707213258047169248999686514942820015713151162428269925618034130517068771900537406119718810278232738787877458436809416080703502763913672992186458280050786624155143439375977598430793573080647427652532100881188139721748502355414822877768419007406815131727145532336437696780946956242084390554055335100214950043102611935355780223671236496860132768984978752906886110589348597602296698791476936711330128396167743750259865791987728919732604322989003237634188972925320658606943211734097531924667585056000295054303999071429033944450305267947214668837217992122214160540720340350616555312547771230245094148469215325727368408879334150856918828455752959518291339264956419667516583761632356864221158030397227642179184003961824961497831194711344983009347576706804339432079194463520956030580322817583925389874136145137070582979533978481580605188220296751391351062285549522986623748275310930275101484939290924325456555782436781612167971000452473625171887722665291827758370107758363093586438631109357415476453627226765306063862976181888868202144794362029166466935399695937152692392774138841329748523019150898626802265234880161476921755153672980505075446862368387067492804272357900213466172371327583628200898082813248573963964754279685850062464239392985390098387628761645899575451485284287330974909608609160291247859141565642554862772197817596438754789835011226584693284222753634051042949440587890761576506091308767998859429783162866827585029764686049479347563628546297749196727493634766876342215123526068318762025832206123752111010945079181572623083766135193212469735729243059380094194966034965871646199880804310913799057816167993765670476498586071190942836900668965839593706595316377235715316944940812770734685386789780622877447704838243005282944809263407975372964035359483328692820490423648222684990585089239404440232602845370401977582374024730632674263772550626587870707184457427641450318128234499770616602520183642223891465370496248749368849665067762146942624247070169384242702243994366081931674515779644402440381469157849911742643763468630292440419106630660605458834389509098857755556960160996842901467297815715473971698093399579348355980631694689563603309675111286657252626209378993867449959099025657180870783474201302656048717233483311389380243601718568677789770011352828310799364806558686390698011651258175673781730818545269513292684970782493185748521116081728302300261423216319217325534093067270665401461974617565873405082650873627025318948352449379440825958309884536048481780075942669564835426425968540092271541662777564176619712107501065328592018767045579672942966540254123852670806302944996016618297200819028292266031602842156907462488185791977292839279080340806684293906204874490758107294371170159784534163611757780814997163627149142033194489933091133318242393723211441813177508604982441088855545378965856244764247457196654926833384768423537342210361081244776963177678762469669365802125132125933631559382441285916998698324158207948178818169258267020466655641190558332619608651555815312088318293184830705118030460930134628852890223549467920788058897784718026723137101105108889399156247398367596900637781983281425209300101103758460821218662904229609819909836663314184096779947020545218969297966433670728037326645394473885661669825202712308342844230112647447576367477224289849872406463867428799071096328571832577040149529585716829735522817867142158226444256831780465993368272683707537284604051778472716890402111880566379066310367675546097836086007741135541877619786212619317059042256532974552798993226208997340598703982601936967299104178731291511550545414700105197416007821556398632779198549747491740816609774657360499355096580386360314360882778995964808944765026195530355561950795702520065425486241172140807739244494767176110831596557022523789994456462053620216674586391746829198436121807814733410687130432031546056849691816032865099211655883261500682836588960492900223094019949588484306292364622381509620858030213284730982055045266941219220695202484505241662615171341669763829498345996565056387646337115019001730635663780001881999975230934889940793541521466682953043853649898518070296257176205056274064275725468216083491521437053970847113231178278900193232230470102807480561247033592553015517940921376053881838914500515976665669942853938036094771025754394064757273144939958829162812295520264091100114104457113023467394308244959914360323580670301545360019351469816013472787395579119089253134491737693435073180227651518294426005645704200386671302637522618679352084589638037333216069605741427958612644558743760555125604267083856552204759971382893938745981444992302709153766859536129042180107308999849923936330798927517893372550215319388866369850337737891962595403074504898116835529113956217235014730485868627471036374641127897703185356015895401732478981234689227215963530203356150319011817028254810677598578625850850329852975794665957281581174407203899346370473513377730627297715078833538221970536789766080445177769260246712225213274654644765164108213859934829716155189567396435364879723829279701890853147170714711818476955372491550292233535854450761783005470499966688651249668557254269615853313191198769376327269824598887490964153562016144428536430837603398507793111795419336935862072527126995624051279946848977879473304729742325890820405045859610619273892842946092880817134881405704579607582174947453072398108719368625865527928923566433626536779707593611257301403758401945312230690891417363666290765097504543096038903855557387291113478797357121511778198783377186579641818876674479322092479209439052078471841600460131318360837700421855438364026646015545371356260285446013688760043827837980798789065254453254841492857444617948961165944823440285564801361573105573906557290555093920210143198104563293440885841227492204238412140614560415830421788290409816106554000024461627988534116372712663195078939100720739757967304204608766521749399053046986199923164108496330774155349604504741641740284737910928662006812166843719344910412733180740768392127892585771045661022214900884767997791136023935779309832886850350617334298263909783800564650514817163778029092928551034246347493324021188491124364678176881396330071210242670191176889927153476015022350536083422642933620220313938394462530865267369306609022051547449136097543681275717705415664459620789651379692359895101098019950849050464257875966962525039814961769532639951534991607543448948539644589588654076878572297034741886162688250542904982780254824815510290361317151672705395616130976354130056428915465983897051966186346212781001993996649932266566231059395895327632067689582361891432168407771383660682262063363339254724181138333362453381364930942142027585242080764675042795460294458850980425188089945353779330991266569715808311707545455653381331738774178879737055275471975142533054239381151077878456359736899931442415041975381836393631448336368482273800837955703464808864382780664814322375312557694038511651104157655647075839172249085588512668216004335143622801970126032200110651582407996933078049417106313807332320166342617497413940215023168857164207722449477859939367985943639336058116913390651046559560850126962311791615122352371296124542318143238619430689304086717520862072711032708874538298672608089247319049577857483711468701918250869180533513492964350623488145631850858309455520431602501792952295396988641121337372593696472369365611888483545154675315985090942433315055384005031862791359957665699260890159598079365089205694853082717628991275458416409508304138374502555334380389207020005949738336373133109127671449756085001076744172248531840948523844017358850472380504549699518456151318105646399803331131552797141340283663143262247136459348900122518438235211794778658160412242771771203502181910260570598436175087926006157275581360725071276221448027292763753090188605551903891123129570260120592965551947612384810113473972112476512021667291357076465173527527059895289825620059215296693252442777916892302311644697765396425336579554396517708694593794916119145712758513110397916214932958420546555593878419995663757013305946821902520456944411061233349270155840463405529373993524994737195583887858888907481357359584865117031479442267664721073769086294766901238489145442977555504550235362967316562913309049908208582335559759057455800991187864977748622715318953191445602457179056040679505118011407996613544490606514429503572450791635629500831590987369078911216063526096695907406035305786239250562282338769109554793769571681802372300639706407248824922392947415518970701926924073711869931965835094641577079458284718690789812698096025358035659667220743072160409499918786630463668734686403873308564278605841880386701508450595657540789159217651259293902881030988449988981059897161815065934249725246457984507792288870397444355473128934468215993083912958956217775409816601462803282973935010287507484976296363967648133271704503345478101845995219231734098066320328742991317181250882536200857621762699311996382983336536285063257981949267543996390567171655168271230337466734104649053332602443643983828168919327180995284976429448194000811898463436404079204446561151392892312156925071138666441979712434314094404388524742713803955220497904658979838617846889499978850731657721573105465519972814953472673908388778024950693129203637283586250594824901909085244137649380027000314340675762974253972742739627298023758713293639157213575799662475462501568435476492120080080887894930584369455907355594181421538860463230893356276196243920812686101594300129492759733365883136459297959233982841176169174366508737301515475379842559401435377972719682868819520604316085421459757808676626836706665672452966574546539440797751620652371893456889813397960335287005611923696805737525125217060591296663748623287661488455363402948003937727503987524988345172242102524064451891333009528035822595747271232785451751772977822545051804453060050276639094715338038649324387242308384970977385237062857261889551396730634836772972814582575280381026837362326857924770028142944095712435793433006245317872845459142155299112533318218711620725327373558518676441966117482304615288216318756938621402365280261024020755443532369599643199201568176250686682770967533448185612435699228199550595757991142311569173203530507621961349062133385854616306277559526679558562355551857203125682239781385526965620223605085788775835259526516712505161614037202173433785020102513471829326590954574326292463026292867754312770803588606140770974131816067758960923570528660590537105772750899318740195645599744066420788488792579609589148437435641001482237987961255222309205201692507417094484510544220183849353205047295951367738391774160474844982421695228347359954045985765340938219318267487739473042498010640394047193457247846445812060407852809369322194312217205079706628095174747626646191756261507534023279140201254244609315413148369663180055777403888187059012365288417750629458837177734258956683359768729658485611407867882099063680786145167199044798412572364649561876283375945396642845203345697885636920876467252830395746573923010993451760734232643417801744293394724746178688790813858298558033035526789981336852487504312313218657182094875664988702982384335294935543290256653370367948481789810156244556749638691107929748116762324598107599187468973514144327300195172175131049503624590555352203486278482623531480680762426277402209064991851203161462907476713235443454569878772157347933895251215424831774016820909226634411490057274351713757887437391518349233024823918129401419485591764603808349033830210995916629296495771335220178880387847559028191813845470704590472505407415661776898859940464170209012893860341536578677841919507205677788958688499937876079375195438001235166737194349095438858457553352364657751982171532259158369748119936773994341491951480443241584609527494889697425462008115782438904671350782564291332218451900165254407586745951047973350112044949982411935629800522363156972637300524530685779511839297348417575481584907151056385784267504005534795183893835021933157811955295914951722000796882217863176749268566130752393087807097625124748321417806831785703115601676799391173064298795975399572727557000079342781033280832739716422293942948143456474866647040694060551974011080972692230175205425576609212469666591749595815137467095965328061782127922089072718924697287607616744869562096243921662836587364822625412266666914286266173016532509792533076078651684669936658596207661617945966976309301614292737282329084164045581615694732123354954996955091832080622663502528895114383173063390700655997248738436450935543316349317283247238393025026878696898071376792042805336959358208466139151761024251008093804372916144516644640469450393973846345590238087322550325534670347485882960101186057631943220722432993232868433361254787292596429797010275808662044697760358761668363916990015532356855762026066919268193298351615705684560211144874945362402285386291384008757048771613759428477786553414414749375520842020093809415828152512772456444574438076356366123230329928253246092590769422234415701912808584082474234080782054556419926659743974826997997690775344634861993390094182662347871920902668240575985992204779302317744797815918207504692236386263406681456806474247878433504374818899999739074406967337248226337251364227453579896782540897596275467155445438188257202710275424096419913515091211934294209126073986611134605382732139479505195885773351726872477183336853672924411958561341223113244568966733806951030975297027192993520172220257708217668225622764030257352972456881172753881962559862358232828147105427577156006020924550533035560752157440669946839182969459671668226719271572072349292806893785574389619005189414548884516608578181066841289149301250718071127500194375416118989243580316784829740348190933335634237349954210692522190810723467406169183336536775100201111527579757961878883005127028387609784961610316953796732982206301739244946840321950701887725693125783757503686552621851790126200811576229885832424272994071027268181167414323616687541800246113939057170081269180500464511600826160801463312437485535636117024217933257542927310753918903111514105605933637908307555294687852063830129317848908171417031871759840232345498804910621907551560814252327153563315483349473524304863109984537338382740278560948302715741982683366253103195043335885589149395219496436730144903262068488239190633937583004566698096172125749638886198078036952584647502799673106635134030881241631954165836727807386614354267851375070856379172804039312708463448490857633446712676226850931254144857368041437381696405464032927698621963604873541216627304758921328483548629545344234427219057611668010225716953574409300281984586147013823704282926234648363042104257470124465428556185240804320607570880955839641729898014661185906158114478936282347188216589775917167702599986433125244935720710886706702137863919324559294909534842070202685550245583463661175110302206325029190530229719377255852893058818049342416058285044519754659001514512599429783366702203045322493214465308662030051557287690111552931337888817579485426935549994195186771453561058332559001155914269714536966429055521054805972360933269592579139627911696260792096466911831164050504386768280453184787279584435461795808137535555864334099089504217130035072273517484102774515472682595557158264011032990681284116989291473889940619589727365166110710566862315985524196059007289088542960383283298016933165341048009742028625932028209585574718607520121239683809574390734931688011092947792494986185774284707702225853376262250940698003584844628743257283311653010704709067153918034444821725968467482622412748696213266305299441237930426141695455115592948659423851746709380177068091032583972761899442682694231354845708821637126215341992456097777192308415041879363073501485545643961730541862506786125711958837029506136751290013705057773706358056469751306208416563275980318160048801646357902009716815269107736471169482988939082588867788550269799038876772982817357324953055790694735612502998545346608915221165609058800565512287502790268378319004847558860246535089371029781750631964243307979080043121436402856756453688440745521904211849122059369907404477480311502408520722550411561713737538385793643566627971331258939229837772294258545529730086391584695093515057261629650237576103102569151782553200899479362215400295471876449178998741435366755592402158911751592786046382747176254961998437493240711625624605523097524110206065182649088828747199309600831302673421076531686010586093121464420773761483195427507960879784583038823485540127925477032799708138402969061819369629537930477351732486466262203848871163716599092778596325317676983563738168010978928367346796571460068947685945419178042544159376737161841001093079706615376977162781817663532846691999144878096980038121408265371909489288032051645138759434580149409855472841387975417334760712727581635022045704274889015099461311953159327990081521300521806327480390106097091818120705925688956311331999856432332330980901837890066254759024524135346020861209861160322934611273848258717244242332219459915693541424472865084876934516211346237908603463976971981982653529556369778234884270796463866472247232488879677284170418846098963556535975546349212168164671763240249702463181624989216599849693420893007288209061110576802184817248104445265145527007114732907029228830974999713585769111832468889896698680362706439243992462316983921001326680220772655445715170499696834506803514492676529125609418582002780494106708178756306960741896866524502557206681068336605004126080918450273365388234780287339224679374858464842284123958546208820290176230764176375249722162197067093211304936942544785352619583683491027995179131731247265467892457588517695042360510821250799982695544455797656076709230589295415401617457035147826811319914092491193604229627792004155053773970860040593895994384956492509196726515231926084550262660850137692310115928218192788530410450264302735777070868199277485098796425467513693903867718858529412456350821188909340955629398502110186303896949612540579047685630374141642377341470691698916918335963702181207766989500661613576293588629497560679624099860468541136024248999986081736027187192315614788641184745272969893868082315810970795275598586134944065030320456964360120690261621145869712731360707710609921840654138992071315115160976591564871229356790210227182147567754945378875248671369291811222210279282251009130706349961993451131307911237334543578839370726545665002981561411016985783334695577662644388349432393453464623330520708983158463803845131869123111632693625272039999800471633044134161511960577267770988698948842500699176383993205842697019277839363083184321264121646552737626493121034910202925471297864171279120650418364208194618360921436445278138007581194711227594403235010274017530267999259962405270705937827467899297159012625026434601161920889832389525059376445865149215710679582783933717953207200132138634285744717761197833910784386202785188432654711252622901479093975686684300982554017003084350457663248746095634369645371519860210862868548150015747258275446467290192140852358564590828509981224202365650675015608503758700364448773523771248845379698200289181747286717692846815205581599421564696215204980020807339091788274246668917154705191877016911565375335739495339136719547257545221229040626349739913232250101172013343487696783175913372845631566347993280996240889489340237408303236532023613383273990537103933743509762084336827248741196728581391427013091932406873641079067257418549273031785881841870890847598244652803615284509850503281692717944925716960694010511282485034747764257070284770280095702581232483546131612065551788636261243065853681261485952294618296867656687647519974241706142294321559792414310717571068724732670890736744888559437009230235372899871651369400300675659336060229324737311322132018791078071188404313580360736479684247333659862819313076857463472214169235603269466649638503005075343072088011780067678213261123651921126460722555149873708163596644859707825176068075469534051028722566667267350707604832780037364222213833480151237422729104581725085724057610136730837370132493426171854396678280730945733921119906247578649916212861383078398274779388481221831892795005442838740333888205324694612155882069154702654620441465078415290780395367210076894203533134558688900210925928608087897012819036417597686593327117786187184180098810251883716834162847675147934036708143676477157341238390310374874170531114862302255750422621778416962717724483465180165501538846289116300469646599699153793713592323313861767912190698700191835702957178752420768222831421955205335839351857903986199639296992427669695473038041441494086487621517808843714257225579018643194275579771824675510172439074901573767213637399081464052993407250947480927747797821269205902972036387226138632793542522550533588638820616274069233805315020958672719869231155432003938869841010129148754134728196897481437932888282647157669817738822074349874177357103592057357225275335757397436879174497762472981236415457176027813524739848416007622003096746194416421679067168449366016057772436142538349976325388873799945950914864969081240512955418924905903006903466232570623656654992730847435308969137712649052940606583663377435340192208419395731437664981647320860434256663538998914130031406640277410747350326706054803276733279126410477548275546048927947885898010157659491325426793327240147925762919154080038422009798136303172912399615205003106517599523020808766024870292392068939194808884380966873744968646621659291259345369994571916268936820352429120376385615413155925697100783595697793070831581656747793441612728999256367293505881255836163759006186797401049288880580661315664199380973206401835634449775496934766068803110307552373817668953651300081539005446672098629524512911217700288825030667082436063596607493840812749336949624095343579209767179880109698209661809648361207312859668140156865017136188714013752374207965036917192683281706263403839258529218396980622555202887638114305596666812302113845767134668070037193047295115606420573740715083471134721331954687540265501775850426402604330260675970482847522680150870434464170923099620721598377234638589479297645569495552126283966872126006428867933336206678192426964251969762749287721563707772805768471671820012432858546940352867129483996975180893968896658744421726252893684456504280481449984961481821004793240331128138850826634614323575178251852281775512236618784965672647275631418845406465922337727585499888438393917241539826552659138277896446875869194353889340485906814586810993605157151391588255274972995334696463235858059138393900789071725849728474247312599415561947188664490668195426357301300669313963476898804791727866069646032193166974896361793096487177834044395969123408374487474596683118970639317307452626433604761960784955217547145439364112878066648294200400064896987829827152366190311649125372379314535083155071652817079996051969086535394536193216799608977998967473076891528653148465259341477350319612057144428130193503022108599532958604027297390511789695758213807437852119374495218270609965850596129672321389177845517791911854733597145298339340966400435134129761924405269303901681081925189424486042261419833830503596984791923830950028989444004610250015548164796489672351715137136456051207238746358472568105291265936689972118334431123571395872585350944494270852446288920427780903074068031216085704432008376550983165290813752548815519176103310403096195155737461251330964123505443670194905887333613507359545276182818383758068422571168995866162977420816108889333799241148468649759653230124779238269064229238262297863597898676707714589237967254563284562107018159406439552355547105139462504572769180225215743673594718451225084395394609404188755361696083705107210903299316998139802459897250997908649269015296575735440215399276761408896783948363898182252153056427600917536554854557157659118034233890440582300527126866574116715906865967195817475625780183802360324630256245700890798540239989229475027142246427799992722900589281285015278204640343833708989465453463208465873823555064361199349570549412241202809935256469008314535572175535412293092616174010923392704845913226815576939569378524162772949285422023301975151414017509955952235522677828651474860022558499832261028303965967787619668229015635629338339415252796145733483678990206684747659615965588145235180466965946949711770458056332094836292347905460690064232957143483396926836822194198971281690089344576372412825308602581815436664972122166398407241817958293017400111165503818561547591729124225588132306486364655084053675006886896189976425948443532777130220221196513374157194441885567887306907209520837626267361121511929866103915719358763356238723830469509971907502302292496160221540006728253160094750635211778454791924812123479037520860460729212046250937383937719849865399635332366745237412697239907580771737022055172734835995793611261319677572406025041312909750515216493319734207237954521276445767583577181933294028741001758117312226066699125803923522270385248799629672359882287161022632968982295284272293932090881291947858353764622341156789892011363276413342918680712319852271770443789192720409923852860634859191524876543951586115895551171411507574218283104766064543684871932464787075057812049882141744293039193125549868310592639418695440963143618331467450786552931050155790044192545659329323096794729502050071385400123027198939770861324352237954645777971249627489816076384272628678933944894427948025467690997951782445055900832630702569619029710312230712338638023769170284127485322175248328039851987030793135902472152619676187809281757568838255733394601359622491501077056252819891282743436309426118478938064982707760362579844104197488647879258445463622355729537010384128263600018399548403112600348225414964163901761204135146238158487410368354017802008148840461462174513240255265479147060560769571695929250993039678099583456730981600433324139226609443227581551921610644501980974832058857425926080457435550321923350190481705754041189584156251598972542757679540707358258490158290266166524736799966516356374376450026919677417210258083474850727373405252264560397875894656056735861049579794296480830020591800459184119481521798217350588703080259941472616924150866007992512389460192261943576047246034406511476022011071319088150883462333873774094164484878201042818042913731057883632914445654173985657890904027093108208242715070737140643054358293285458840548788973340684073326088370957435793369286818640333758137517357446122671529080780835937857140414544844179269864195008362117146722093090862733172016453095789064002706794467399575534662692715460407472141608846844780980544809550382058475778695530831151975349595740085066767483746761109190447729189145642255976625711674827796984257652413373620265865104593379487357080236272555629357450056479255880483265158492301554787956088498282241785570951617031033155694854406874999581071314251291027942071397431957741922662606830645132217282830577904430205854061633344059972599558640614018318792725945383810066459877691930948231636411749727683641243861457578273458526035230124065374390591430605005754123925167773504489425977793326246892296818842011993482526612983674836518527260626380526534388305621429973140585524652543248304813272993821819009371421499059832432564803653135006944606967941861450978507990815564428946460393545079816993674093270288795372672209412051441700939177207961192596678345689445579340982120012802587655108291147306520550238989736581461940877512783462691761479282816081442815233591470231554722493050358725267089004944731726761298112623210940200473954992051661936231995143442168465018946853520196080679378516355102453856906126829769902428346672678751286733820749106895893951744457794416606207766015170906210981938285278844203454284681039791759823419092421431006411882103008233166400802783270650956586802009862327101124984149745213887100942763791274562283495562007480393013514084492274125398242843957164391886771454663999814595591804918719148448529846272428406322619534222593006559280764155184977952479680146014794115546117589917819922743315432297076098651356722275517610180607888253526071972065575030771308385307115199660628616127292846765919900243803211842680573988723718659058001453620767199721618033598181926470652095757304972797617144779115412741015563349851091437367351468439434075976981147436631397439152977259901261476815302634037454971687482940699232886613009445775499564900053512935019768690758242647592330958321981342279754175317532020655131431980740241739290257044698841640428920699508943063546604031691004447188577994535914642838115829330534774846853459320014388002360687699150864516762896300870989942131947604163934711789110032802440739924256906090238948649658398168687028636930524581247543216707940285398247409955769142463586953573626609092986403843755191232087468076843352166253142317167300363418709340208650915314388108104214137112130432036849776387263138150438884369594509638424200791312155408630057266208244175592445995916351111563021508256023427382180264979084645953405247001278063862566834447306821977093932354815970299298074257674089787300055428963873798646304897901480346110578327721717246400659574778401406719850819763679763298892065408706999984455553811608106287773782594098197413253809667789197489625480876839260484805595039076271282086001545904273960073538118353371786270892831504015451341130096841949882336837662838412761202475950768261433004852482446756131347592094884703405909077017237979441818175896997355372946381239173369757338797203362864416811237117017399654361459446076081301534534407029211895720992214909237110662167655545939701697187077036450334806675306767762398213396525526176594109599161187366769077030760876064877328489156274570806738584364204903315972464938925908440028934951286464878195545987886197886403111544561459562306942047883110735222416622192661057811558250370963425904671495560302426263132119914336571735364759403231431298727966078663911721353542028605793630191524840588924669596777486340762027232276342018001628118880340622600278489614982049700403288528745656608771666670017322606573202453789143343970988171499948517702767533076002259428034784018000837788114783148851501814611022249120480342905707028869540686685593828660090798990764954984210425752812372220714661631219103209204148762824282020284609823193819910782601920343796188171642567570977471843341264749995663123639637740841909966833208044743256846934911146711377008310104827133071027176802013227614264277888678622541618789559157128374035910324251062611503111433946191069608633988019169946257799299638409967864353555890705157652671954887841963679388464941503855135996579582329745086997397025083214228578494268297100091579035522654523432537453001908346258458517758837787519196055768827458631232523558237133363809324262350141840082644886566852752955267169175684522143708546847413291473529009321042907455816349035548637540350699085194261745609060105554369312859897027843812643418150334089388749751169861586606436538335674857175749958049855261271459690495252334220222430305070045604985959859763489640728426893146410520223141361219276434899593432722923523868906801146100719983373647553948428885057714739821140778922198545890217851965286002504966598747890352905345222426393922160787546555216465036646774214338465326438735462801492707615111982033597623717124311184592179341233408295614806745342563199750540753135035255541748970697104934066623218766518785536917917348296063141783157417517383162955668281343544117988541850893245280643095323424866901740859640527819743681493427541955211906761602714477115442330121635443228441803899725144349405254517355515726790374755582411446823104023426754227735801594159416977937194268863315115280290933945807441181334076457559894886202096423279548209606770667834215743231986440795316796829115018175434094194549589442383431725709762870367654072273345721370644677427034210578490540531624783517794289574059770471410059219092052315842490202972706648487263175164816409263882283571759580888571153489811796972403139889848429208359165352572057335701147531247079198327198560164254490566080054739279403862473456178791953711683753879248217123654106242335534024913616543618880378735754694032077427037074989477590999301151928873149738859399986053568833522857497280201017198013582168764525217927931328294361519952436759280348052282316785313183824429721243495053506864632139420494566694570492544484540676856000792890796629236409298912318474540760227735717460238031419467347713865029188964629291709951216626771229350828656223466933422345903349970715008708535961529726266876507602880207013685628870654715589674221861040469847356254049972751095170767307495094551138926613120489826580309204273081487751259773188680020468969798315070194612079090918412131106670502049890242539546543313609502066354475719390273556581615749928702034877059811117382039849256439669613351818260093950368946186876071006028437055197330190648375026600775772611486736482700181468538996806811073797513170619293543644717181044045981239060530522786554373566766783797096144094844895106510009590253683940783320883675870814841749331947785843887097832144307093681711903434874789617592944504289243523299243659660969749458160085210752312511384787073971742370029984607573934491656455386952947022753318735348611238380150447888041929964070101280960537146184532562315514439293886196167413748478399090782151106892929464659866922038871028676632205533718490325551191114615758921346314339117542193563177128583991230506155937988094230004952524934180056636081737021112995377041690985429054665772344035923079206529121883055040319247121050031645676589462745044486306497727832177075709320907369240468939648409765480395340409811936773752953171618831616493234532271959173464686797226978740471810147965488044639170139269988400661949545823650480863892459561137167015619520810818933745675279936804400704749373923277137165794161986872169312201118234783394907592784771587285161072049601608082853763477237021344204535492208945158046156794833619839355363116447888756443598128613143278082000256205957478519883565775897826651214244769968896363562791632604679622177791207552366467553818493191742723898572558854399728772406245066099311794175529880909357176863170919898641668012884695856445816098875945721617632257741433122013484134473926615905670585663274338349991014756237523814273976397641456081368739013930446632304382585889113320505551868611906189751921791696624169209967146703909160523877565291884977045921571333988846418453242106880979527916497789383570677922713054858527941706233036625400112113674499028728689854325139138565183847783273574378037302330556620661724360077266662000201762431198459493353378577317437385193502982555562612613672072939893718194420498431139051188683538894737201852750682039918189613704847256258111740950992298578807940871584934615721134858588434882165583898136942824320520320975966242612812909398442964117840505092795511665920504796798904484894616634281667399889435633476773182230467398267379762180892140187391059173927717947577102281703536479436321579520562022345894690913871287500207148620627259075454905309151156720032056204970202817450449108999830498373131447671084995078768754491097004813046922902614946124754759741589027367843702296239584346432770288700086911733801415829549186006428227233459915579280168742102659667282653329166334231985245951284437559071884912181900040251062789856874364598862841083224000789527313899051970600209732121096111256933150278036702818613570632530998072066001257197607152531817568529672804091414741271080278534560353282500469814770674760844859242383020486404579030815799927696990886024021919116370381987959128759430537979869565691887994829881517139623324272357366664357419858956514031911429300008766981868899330651577489690770265763539022227582117950595443777507520449666278285329466550083453493215951339566631019987268905210509575558151073591940191268324728949865071143479406430731042431125926469117951846071764762765740208855685436954732485814545591484119453485322550265557536658541537967498986442848267155366593230961324156998174256149473825094217916095496961591070179548012436157525463989144219426939781864293596359762069461809929679486110875395242656965960202266293477700653723665735627008058181830433551574088728380422574499112249128602625223845167772829917619589884972151505817460698864582529165925846197041425369832483637867504989560782320579164810229165699948020839649598668498996124159150361116802516452086378353360059865014429065144422983549572179302601120539827906710046096277133706893739942548799099959924331473306063790169047661893405514478022431723081047514101257237839985966886784449382143180810778024024240901232696160607949827166098047499519437403792903270700666059375103999348344642008456888775345414499599608787046018242228756137382474947528996507283872792013445027623075635273255476841603105660416470649001707399405416888384605769718764130613140389440420540549244433054487981074299015979117892293884463894770275046592986032212769715227765053382409416493126442391777236678044936434593219828128466042759520602552887550295363335672941301170339818457773342639295786142110063138688605589434683219509081265903676892145539865416768055481044693389802719190217807771055897606942631012168393664352163213328419633221530532942982265552216166411548621029249856531660478876341542110919658579086798661214590279393390165049222859999701404547346559840800011281572517550526273232537287851569763031445381342791119048802257373021095317576230852280212243821666464326969043437337906649110924311136384056542590712566195964044251220106684188096076295761136484147624061436553997796745253608496019884192509753872874575311709095853560794750953557947919317289945187523761031653660267651881401663623868609027695747061708036187790184325903134468175261813613671939681474737470299877981741358912138598443982276858790364436768035101496009668278340899603099253334737397010314353349673327881240254319662804633179924719883648940047633407656315515002074845085973097407729912733748930407974088068407982053578985941063908516323591108467906977373464369554579832550816003869655846069001638557572058560438154543307527031316244515770552661741895109495093850922466474482870311440792820720994263148198906278018825458797114438551356083930590218686960394129592227061150301580542117866331663437944598072297417680540122752970830940827216558627675030295196242844280706942537400182910472258764263738863032529892077218114185309801606185375334895142318702038207096538373316941464852307692862382887468016548540569913337865054295873662199373620462857301177233683917860644632285201447509910861212861326494146926929114488130291487235080990680507871830726977755466222964368486959326570006894452931569715537928972069639019156732703770445441329518928175520606322598504751254582284202868780392586478296061144675274471864332650588511242375491549992343846092951022232098247319128681402156625312740752325392745065229193293354640143529452926975907011814342962570150069737319364025089832480261861586986305194485515227147187602741437135995393759812729498105300706996032254329479906433016383244333586685004496446681539612605789972436772607171259039249269064165610634840634020617797662226075542746223921067962962061813810594752524189586914015304419310785425118446577665258775926388039628040907997873304620762463405389060832534244984568374479556503112396118885964277785313344269752452767149111791073265698241666240767008854441768642616016814500618726636642533566284003820153420232356543575409388747561830374813924348973538724751047752201404242422020695666636901475492590831264309313364431355246838123266565916464077344985770194106926276415080709096550776702845426573912115146705885380905068569477852822851140920407620091317730241139056157755319311694295751686533313917633671881813210844280304102725340671287674955040663848081944125646970061085746428023953723806740950375794762176043205542462574995134385282070024308960467218276418329171505232793374319339191396035161198584175417096411933666919001958881616105806178122127728709716557809794468817908489518258591334565364439284214467716334303437812234214964985888743408927655509138148521069915255311202729222991455215809999302906997194265745136282074603671896126258891806546079211987993172114316003212157547722031957761632637230593255453179284649507243035436104558231296067315471575537894960849900843858469894094853999105462790066458485961088579034676918468817283509792518236599346560461663064197697112961244248947864035931499159986863628850705780707353003690528924506508806034603172003789846744389446448948008854372718841288621925584629771637152897477025351809796967011937034000398520326630072964991882588070354407499784837993112991434839939248093604982232402118503423159107044292282877938856391712784962251769020702498502451781003244158123182436316441669917345735778655430178216249687657812450871117993964301071748842679341109422280463359391931641743564959746383474107286794425681679072545596088475948131135680321791583178839023084382313533311526360906024524087084044108199714422359754464899190301650376270077862169222387869665727887192277528106137996581019850087789020752056992360751938376922291991683431608859135525448742792496842957167583336189741664845935334894700124031402695690126958361023868491579156367871031016926301188879101373395290875923206247534661987502409967013393039108340100778477215913007744710515534496145952295669736361624613645188009486945450221643398237943755638734870129517642217431146818956532811834551619888039246267528613399188523577626406609009097728176455942365415154171701667511295420265513294967484993490129383623628453267206734622629197260770567988736198348761344429980257864791351339536005087063176532597700900550671183104366382772839666083258027454849937148259004784389081876187138922097812565711106913646256938498095577245828143689878885201838732596302358791894667247419257964061774386350146317322937420891039475765437529781354157447400784078232629430020523025087943192542190799812134212933191659040690264131658991151504765171608435042912644476804573770293729889300422925515575414908301542122912141521661258764637922949027073161101858360096346464283095390574495522530670704813694716126076935921919547710820582555799054445251082169451081995303968112278523725482724130693119941221198176123440806363803876092985518633745850155642820577655708897566101252997459720188757372024298237306230508797387851052541356048971626500517694913783598955094961661505659284658937888980183555706460398553466334981322470695066473086876853959040298856803376093993133669276653275953099658546627466058207297670229169768138809140457394626148597350291159331175896160403125089201447626607230966269884212612200079208579460550189339146548801144202410635273872676649257011269993895579739651339230271612794292547012314323630145085058808498673340490704749018278756447468469726904535851087538241611285964313541783528172104274028818723295004811763026275536505483968610131919436557524752552542622876414924992022373406685503994318973020816741792531069304977075241285656149505179193910283036539780777727336549180156498208559096605882408866022916625900492370187391985836122343567607042379731187836081291507679649631725012424671350384920129231349941137881676637584581385646307947993253640387167179809680389857294034490539948428886251242909300826593145672399926273103086094896275188598611665748387009805101111071965071078296371604991302813775295047728210940266503085008981667776766534657494833863818054415493117848966237174044489041084918785551458223353738858861804405817891354715259007452605517670602010119322468085001416387432326897266334681545258366515143611089802760518950014882120542557425302159050268235314496034784910864423439882571069173123482771501574241112021209655149711634991370164451094119591406946827929710314372275877741049878767199643513484928964800458873964592900690738702413093622964671340525562932665052090614915551012991040030779191919299771832928782257184603526611475544946944917261099876896226783803833315073733978836177766410964331856257985675263385773891722322827727519009239121592734191765107455836755569062572490206355691298572800275176560164635635122948628144475030780069268621168817103542729855267095835618225644536734656722398421788543787398096789628428117833580222570595994399426007883304727713122819452678443911081468770500345425214077632920462731102835263669003419047306364478017138390487111749175187534895912195324713639972248802265956148111501886803294470512351269488197549107443713380842114148985549996620013980011041059002817017943060363501263662032471123721777175921723589284629483645326665518814687170166218106074486588991863653969982561396504459697672119362811146831209212142874721089279691536484982206182801140094895610733581799223333167812366504665444677500440803032056220584243514635935446818402363801498493279756988788529756196368661015395135316258842197070662472237739908512065856580314717373214122679024717573880832738301465710188646809010173947134100898763967927130593861038328935916986068279533332024266674134434926694199314770330050979736262443579880749954875795683513182771698086415978843132763528597989388724075559723383067124312466742880924901517729765122087967522520240446364417109289888320856284369789495582769087992091044293169924025008626869499948895029465643078458722319182388183443132278287281556529712795529580266864431609816926061055652302911737207715842926157097251835792943097985210279753847682438970529363351111301349540247991017400381020310516996427356582078371547647245197982617908786656859778608511868996369944249777293949520540796253905944408583412219828148734384706401124073809549034213213186971308178439012117455732721452098132174010325004917599210438281583824368208652128963761700787779125854838058866128680581736563662769053449812305967921564129610836456637062430705658337324335801914295796612009847033167161549060180951906245438504425770438913906521364160631335522771308795751521491102140844733781825291935417384836530377714797208041249340880628847785511170921483863140036423390539898114484591869105211449838288614708934314421611704772586058767768848625019391653369509043307158083116560280251443048699657557013782960302315320721663861496186790609886518921224090300523437639606341165711770607748669590160544449040909122746997175696296706060960298659970427328847705540798309671198479216131858099332070122353300857447038765082801681553917418523567486515887752820276889693032553567575567928872181963579529470562767819348681398990304784720793159398737666309745005379687839203126874045836702883006543029272395220047373142455668456210310253439260698061667384638436509969864825666027073877773216041105909202611855136518858290281981945329642727640189617089456649631028524046573534837229173883120340053798040514401299923345921242942784768354218669911086557039602261907653506291773067579851010996158052686039371356800324677999447648264718430742847453134074509139718686020165377561380991350599692877305627081168668278576166453338389435241280832680018042398614164417168667958404914101115804969322136710331530034118982764423567489430473773466468603530555441956556039331241909714369322076069711065503989733110459309006437280904626183277314447507876166301340945332171611090491636752629766049961531700960937088862287308260501248184790405818043870888839231532936540424780354493883536515106284027681581671955557516380258056957298531092779765667881879163681530802346367452882386528831871014162429576372478523309912845142562593829471171811053647884129064223219981849623463440581115658155835167643367215706651770575045681926941305857583381069640584939893558856191295825375529573904967954360409054156929544086672645536244242661927936480769615688799696140549295694278860398818516128561876557842832223953237179220618785494557976389659284268684144578617902374844243179420490844480144833317412632177862207124344135299729903215367614895885855367956381783247866746647339389394205668348641237769557889858378053640701283175152099493220067661833267540658789207096284614871831087724780425891662204329401110727204178327736197979725509796090942262734291616488773598169437383398876182536700181413135722363571689732606429869903943485334454756947403139245652163353715054130156288645574398933464178426811901831067333612653384156636965524550000362843468291771212133617262762201244905446310556411979624647995583781393375626030669956971971955199633737816136115171824365133531063270139959606722363837664606746861295678572629259574411726633884803143573527068137121640408220764246082685698859882539745161759490774555228770352467728320815333480594819784641155930067795107071998025751000775662296840608315103650840219929470342840392588161805416932038874116820139774254588981197988342571013786652538045136009162080711222224101182505148581516550639272346636247548331343932339042127512193869755873533652599428701783178364597770321720192141710897311991034652495845008774991948056351813642577897891247025057678237590028442905084758551205781793890060116792779996003242081256434116924395562325363067576491382827357983189521632119942613091331858848485802678215325194532666302637751921595545640280277939227909297745112521145776376728090836989672642364533008712220316214305040965843329687100745720624401536083354836826411026157161634235281819222105095097274146662970357268683368197101918148637495789734596940970539966076912409523309880678328038774087370187362159071261489513186887703939403643188673895084277106472760531514469020046106524486384001994183061051356523378394561119176270334070752277739718014468194379159453134420424168236972535303011776236641732860439157223699574244085034661918397207898604711937874875378994151412707612132391356398556244853034005656551423724191191860738384780056784200702306857833789666120005246216270474565115587107149229705591832275265147600925006006694985273156958127674561377571930538841094099357175404248418719624900821673312947285895210790105345416395891185214121655653673169690978248070877869306998810670136227487431317371607637938235043628668215584852085461084143428536065130307998590423327572583646478639744646022073052019131927533453261338030829309924712833770513955890188455081451658647752994604830641116072736765415434003499809685972331226203254259858404163265265764868062945326368259934815346083828055254519772490911950616232158269565746718948653391013635402045801478781201415050662479861129070960902196296863238063541412283060690946093061591634163363598871521111208893760919267590713591241816934593583987662722438317553026834759327261338191428405044472091197495874072379534729949313063075409939949254293050262662528180652275437311891735459568540990953495019125028026723249591010874899135492864309793435011911999072226683044670354458814783598803155025045002142593203381217407631977166335246747472828416147332508626537125308501485767131659770844080962473821226301833281855706532566070308400506001189107398511358823429688457465414492134205959283254438956966137339687252678238178902825167883638963665286322769277973548884799515703970571444536772406596988888168888054177881489141613259863796747630591591444233905076433162448252106681872477915258790902544359161838343222684483844250092962295376235663997508898611514251371952756141096041626963318214177748859785131586891087287136901485241452909998368445567622095496479922204722977479418647957738417703374153582175626094773847733663020685261466982108049849618584312647917213017036540992921205845536917370211861363873872711139860924251695652991297824518775625219621900950536395727704629004309125160176285191182641458569128723563228303921901069542161445238848195622017685285058676280139667361981119064162739059468665714912523539755296147092136573420350194465441271160339378665880975230107123943627567792768573753735286805243771826377617403961986479365178250972662435713590436383815861767423598024630153886538934501567211130778544053379170817658241906469117733234224814846255100172082257380799071090779075106513312064442791473569369899651846967091819355827915203122676617045347933254425056706440367385713151730359852501531495430821625348520575053294314767155164798170433274435683138460862645138292722011588740510829951343176030880766118399923457945050818795574066963649717792813115787539994321264474228027057252846584050392673219934354826984712490395123598264896935245155765175048338657815396755256233788371964802702561922161226118198414121201971395217323127252971535663869600371931863901332232991157131038019135410955300918155711725427510544345357370018242790525174981511899093371343946911510723110950344097981429765413289144314404834195227935146721825502991360497789302399018234018848533404162777400968063872168225012072206328631962265896764429277362968772141741029273905022805774671075172078837667849970523327637237884191604377367120354861370580882689482319580055083624191439015993222915334953876373219802601020828857559607058162179607744774738421362847872914827052656925410190077983604637969417020571452207668884525742937294708387218169168998727505775095199407803726963061965935849311088061539496103394526346102578334935143857403125585634197743124867994628732474824414244724273157028562185050999674322377819437685634430225344303127947509637876278614029000537067879772541727163739736564650326689352654453275839467708455712399590973015546004945276354887610612479317532793890262440646098004595953354495032151350950135973388056044665456771642824180108962406742726681441020695147823682112527150754079831947816441339614611333799920378728582808033713943660502720573304685045488535768691165785399386648045965880287698965417779342901409625543897767302085313156764774711845158558217137125745411990426253674513380527808312124173398059483399769977385930313644480901476190090751712383026779974378831521167461251394340890350644574592760510204441541489681175453412888330268465352711535935811669614820214010143539716524528752882787976557707416597568329745029811259335607095286112010963605223625160475138565604832186796853687006132117016378425354039443320808667076313485720517024765282970706575343912758627288988288388167955891492729604857986040955808372001032353064399781011996610869650326563677309132348941885046566196015222094733374977640893033898357087989914334256506267506410723637433358266251959704076803455609326856418903331267809095361337019777402837776733574054116410407928782225220355340379867355333565376017491663000430247021529439789099382431232430561262451243206445533015656904712049155550786808132749891251396044770871524996316461189363692750359283584555476994449611103004439660294021455020986264365924116567363074976423020913381806872858469915010953407492188325422809138209973136037075517046040286377211611345381303203219042471975618724521808144877633026408595050082455102335973094492310500218704515408077462021208211601008449876681536780161903985992295245847914699862141158021781673680819854696197473490729727427861202771313952420515396822511795327779371429728072405358306897238365514832273002901288721646455971181800018577427660749195600869421489421659309080359604439051138519620003047757262802490442532237727035545220274942780329797260052152988799142099174848978923308377321219589742742923229803991115029668059964922795899747417938478352607279548363497592662247026252239068450527739153611409928884397842108072542626538384154176943194244039978957885759037987140494940158483507535277888977464921070729383070707587172925854866409664390815119142267253107035876383394218267186752771041927271754377866817149446650282995517482529441904274822723149206533274399264807091700010432770494086622592048377431612779618385149094131627810976584305794090084716414549614164473598302757341646015129873806263572255195595834841313697931387939318374770775987617560352370638108463833294916540904046212884169100793986463883603778647349405960607262768029089503456899483446530805560143956832723747869024477111256345945178036119736355238943912152334748262934924875119072737407557078681184370864606476862057845092891691610071918296412649552751744628764205168333059830184522794221163241031582660000831892866483229176148772550517999570724212750272705727449175068952221342188543397917378732709194677589117679756053979999987391556614918943623905757110417901782373267739648896217340326064050030487868399970581954463863327002954863485196461603750248873417163221437272863341507621889485522590202654068060693281404258404723717509483858690551002304594684246530758957281559714916481236865207498393385669228285459741903599664613958751755051449574331302034093743869055649162512380887008069356061753258229934577317516185590004560099253324304444737704847612318425942167850913081602238764946804810238714410695920929610256469870360012227405737517009657261721502616862169805152913652461673466344716735077416515733154204786491986949443878570351324023890170549292091385608330951411277066614020492900713512553804881093068352283023106184374086829292433656930078811188866705243332185306666951766217202817869007231560489173473500033039843482746885893156196572199699590972927781950010815117107430378031823604725857542914942018606279238907655362292712502109670003888926267532523525755164559926760128415552247143626257443205447845497458350658287651643733501549362452870771105096541548492750591867714237331420365487577104589206410564465430880604504622978929626929176498541132741653955228036284112324654925150699486678033764008532095600931253117286567801761416588027462915298219629833779031000418744433640743290913242562008733723436255679429601541988116329067503946840696669156018402017578880165227816206538518140820342097416951699313942715001193376206451478664199167532508510018640499248491472496756879249102932629521091496067306064499432012148101039363404027646664489284647052118426621148498698860571257619446549529456445200716977677122849259667374679298872143326011544185825860802422870566940412365102908243825379875730805175940602771259035928282958824041881566137079905576572832567035655742962328898743551544634332969493352553669094578734316325071897467436019160574876161277856129238618803907640230167273071958195036826009869855581206789300752289724521576742241322783386354573335233166803343574451242851915229020765414782251916151805698899157889809006558973621206652331932031426620416972669613900079935046283398918395882500839309160164536818847325454994062695103644553090585272599754588919075363964433303293652035115718080407690800577260942370113672236888491306769448776915125852327839720046915731299868799339367317559015600757871230419783517594654666872456664069085406449820202912008280917675051114392232047271372001538091236529957964858485605416786079812235470176894859628112299950378981038142517808281788867280918468286971263271171470586294677791344454075284401051893779281635561153554734496168072143563939192926485391406932201273716704059607201056819478132287771720081523159739052109360809321832606516514353969780899543260757456718108928038016042549001279796349437445785781425028293806919400940671496802778010385173652258419193932106518511792844710734858372343639141416711748071611930960204622438077350757870303338009402372367243337837927681751907381628099941730560075881192676184730856188697933337859563078305521453657453822921775894410317932914913685957225413576266004687097075550537349167407857145604065809373823539160668370002313277260714360088870839853547865559405796245270219828428581080042140526154689812473070633673215367014006245944025619155174711960339456650642496671972302047173193464518973158847021455483974163040477650066367385657102486985318803960863908043910939767845711953730216792176049639994657539653404841703717893982766894720089334948505268215704669339330142817410003050893477634061813227059592189094510236036068954534731869369061689437421561467616259967167174910976404936454198031123277624223802709658240283590937930476560597664538791530683327737476012124692425313082654323394912528000323322421060095092664661256488377783010085661077113829744033335548005755411270677476336981814476537675473110050300881606859879232753112354845694141309933059598531608025316306125195511977014971743907630203532154540729709369176104656917192065876976781736152383460942668509776765982772014184013608650752701454273362767822089011636045990015863640733106388245339467127506641876159205569870999076970955811052214360495540527565940158524177663247955859967562250745619713631275321437638366013491778124235250504147590974907773279811694136153928342122431315061891977148880674036553317969060801882092140146923590295323738563265336789142488224361394571200962175968747533277271949638325078181055654786055824204186269357533724442879275457744518113662557043403754563361301112524103937511533203109664455903783503859241802759573709869080528810465348672843905418821286156810520260049681822569814125865235510857951441134034073064060319944472333621346502530205194506373651350063600055705292439532337290745516080812942790826890535934007122700984471660813638995430521150002439122234564440839401526245723791707262352483202095797961429909726007777995356637172641036158070114051032098139029070318697332305791175825892952045028834577616718585507431878396502734620457679238623353684518391899171271251781496151098761470350612947211496038915779709637018521517488640564058097816131784909871817034577154614362352332681529491529848099297177880109250119185485164689312681293250939639435325769644687409407268060726972814151712680370114407457094239925801803464305012800602417627974054685682222730682109278819076010482976129838758170588962415617833993554822212749723098052912414266598528052389635848934004843281526741299261749988489797141346912531012565977002260657724206159398314588862434699731245656709174119358926803015677759982394680364317532366217486032509113768184704378169299092814224486024897329241071157332803356929631085304554503252402317857309692793448281301360362241329440734743401396926380892015956990611434490578463865065271288086330869660297517113548662401140712941128483991359083170276443108073333813001140690197939368167381322350326514150932424022943647877135910620436556757064541485817264509345997597703666939663593127430611061864553926369107539869869220531095403721277555763544877727931078101094863379126170817462233854047144015371136196852366183758177117318362126332755068010703203437151931344467626315447588914251005827716870393610735896547864465304786807029468084798818211370807772344937877855835651223508861000534694638583712397863827492542459588778254793154362740700359688985402401167806834596200590235694572573140558427968362956845009987098312518254264798518547737853482482854484106435694233158835698699232821152170128171404142823390500205678590119701531983751122783017465421176127319561883011211869008262039311205654442328626080129276732767119093008356463741459201706663615287443724071361992972314231768238903183017319146841279929551891758710958635922751690539322998080565937528795831787411185585017429305600119768138910140436761390310668377071409120421285314549457467052142774465976550087355755900710453695607171183908901291006031823422232941124987300734167123319603954750746751935065900152969286220178765505220404966251201021249635785971681201797951775026057165565302201131779154256605488788223582018616763534802593285814748493446305419117295732214952685979836709725729622764819955623439788502085291930714394773196926953980280408992666700014116051421178199499809536668922900953698981825262811523369213352248988749496652775766372328477809285313580541155999159201761715395794141344100491685622184441761289076982661118135981333884431235669449639629379322158329123189586056731272686671977487166949053523278993714638465613497521940211545343940218314402076889931991681059411757828845375779098660885863303351323051972740422604878421439030580928667012483512485942275786320548615678026294213660584194831533706768804951478157169744150625681106058192295782485672447681216283116230106895280612865395117378305882224710496127765530205082236041452502403272061041413949750249789848863585121946257268803627998083677096451982145957166404816057266582250017898006601278036327432194062660302154303343960304970184453569709500507043678159766591791171567492590611112061049419328457481935972335354478635316436657054544567530861246023660951650906391116073290803457600379895937615071805564314149119604476604111495201913506715422331267750993946164862128060803040833997112552177982926223729534367245292397834780263666529491885893695813055517918892438644307470006535651252404010670736209618899916641629309982953949830857135323452615919509383353447335158791985172617986222162049690872027661221467204101250990869543841224168882906556726413950087720590830901625525234973558440949366770090122911233463607213016597066971299249570535882817924108965419556377654720466047219613450097669179394365667940130870765599853752021899124615650804988437331388016250695729978111856426928939734106917681798757740531576577375582441008299772441415642100850432825855143625618906399885220333980298477317202083089632374099409116241813999372410881971395030606575406170189098553672514449155625098829620206542948571736839736018891792408329382890402047252104571645073010753650057254944322358461568494942678459672299102591748168351674146989327199635112734193965041232127058701421918673661847081351458104582766402756634466393189390697013758867884657711054306189206687194951123352198852962318609121814941840913777672721456519041594906807252081238941416832217965762303527534765669840335736087003951450517353473029394976229696234524418618002135619801938774728120555685216081595469050371652607093493268901554105599688180465319073945218978841260013486712502912665136732923362528087851948569640092414241578441120840994840003011914801966492049939186980704648248969961474815836149840188066131530823327917922572788018577709712883837995288517372831898548203037557106079675900039127457463975159830072052129531388674039930195158132461103571438116636469188818658434943547024709201535339004323548760949868187356367927450205690391435916976142577813900250910214471495476267908370137522573508377510362195247295030535239062526457341173495067800911471780137690876973960980222523537983308065296314413034014412693850355681720913902365344332738503227721120668448753518135833546292297972823393101215749910298506193968413285812987330874497393150226435261748919790561507514115689552636007385806015365963372040481732351636876194635875891558954070522675588762445632962944417683304669551697245866769798694172098634531421343664901321944107309666795227059953623507793937662283224259743168019277541079262081769115073340063250654080291217780064820688704702475580486664892543431493058280185405926083091224706592474179113945419109604852432044471694538930057768313401365732011599562296040007703330326264252137568436841564202149659333342614848328194058101260478443185400063197967839507216338926946924579096656515469829451258482263203415256392930217880468115815310863755122375603054004370573967937746652111986016929892818961164180408232124340625686424155150441610574347726655273965780380925527724234885598241931005279785913176500823778017746510067518216425825783592526673253758444990338657440027813210101390893791700283319449880034199098882501634965020919602433917964556864698186476658979397816576578575861225823819724659812315467785534133733078810773830613942162207111663097030596445963889462943428424087024617846177601394645800159748745871331133278104217472367014392663005893696478979896213988375577449467814849274744691802804743381236005092471204480727471629480947167698736057939212172592691364277990109589949382335594053274105145476427023477356923103431842857327750809262048378212095702220966781271119741883475899031163022660667817108004457625425139091275335921283173094574655587228915085403213893345544142045381399210920901739193482615995788383849299705161678854295061239441705933087874800266189853085100490959972469897820572377156595518027713420301338773112704979307277970716111215134636504326398617804965054152902543954441333275796100227982219418278046831459106593730919843622956003108936310994128799793107001387758794051762224021295640819974761518637322864360414632002040701098056282819808245535936408094635247483557502222878998611639976854532542807876055331590584497177478335025191507783785652265366877025654034456097925456836082028229811967314104534552745753080858447680611607100711921353290313914662074803061104040496116165589969734101132179211974195539688658132324540153374818019753340859554947516087591347559238235829902204573679096734198570764502384171382657837511623146980027687467843467130587312768520746803388577997504748601952480155784501386935021843774775503425509480512550546227361706561948989182529007237622692668650697680768483964331228612270968175881772024556528784936427620228981847223834149048831406683807926867550318468806659568030387523563879155796717429524045817168795580174225003504207811778111236082474293022856924739784319868752362317715918620756443873859230180820500580075737809186950379355930967254250414717300882234299720566751686599314171048275171636326994767261120947552469255206490016733940557881058243553076033448825531397107297025342730422287521281926316192714666554028379835887806264939158462294949152644100269400744471299485150599935788067171076687919489841266597931718791285027441072406831563373820775178930515392042502520849107149427713997476751891215379915149178581395044302904423901209783709573082891612499977507345828132111638726915995125831799070167720872231860634473968797544815833819566778722737425190788747558941825764106956091705768898287695390708369580542857759653978870336607736727639858019970998236561273327456989381864360223628984752324073972790103746431842902448817672871322279226883509017394803845730458613493329896346621230604798900944330025858023487892022154434005439601450379171934620685632632582855796731546664533994769840504496456253002204487007367608521183416554599617727335012794480052518224978966942854863688988480396723809720811545211395628853591747850564573014852967579357394557464860744175304482687370031266713404112145743404397295156855909336309109304266048378956839594127145971709226959563647615372828402442004596866947899846344996945344785426191805526115522075229552702130429080055974090936049134325287479644049484825972518830003487151691239961178830601875671533121118812489255836212864248185391960372322090818815796421696384357322336411502725852070377280194753046131705657982078106322266706962923270545424710952552289309057825351880137999928779006400420652747715027223206301674803284406620187191923956036710200040272923076939809147283578795974476775966119895341366591336145662569316195293663577533356283721013109962506036791551692855884689883107231654491944993892832615676913909218160034585769559438981598106553400046291872614761316154705588820949687674293567306160047359073919902423000403616619119165291412111762492908783178180820611636953234174662648253659620921578404030193248770108107414316949933183121898319243931431422942412961606063237872381119889437303539988285440082205625212074895180949285147684599395279953793551309711924119493354111867264682101600664827951190364766108271321202054355973396874755688200787854072296899576530689624720846517045640220503645408417603744764754195353145290827775395004956206765627407270123334198389985312532178875506111689609073627599556251388514899214744237195770966891603882006737434840747511882212111373900755434332997323632683677707415766972206691238794055687021133560160863939348290471256367129312567377239390470547440251743475285893657801736927078690310196115646967876295624652647834741802161401101222107213615491660521031373245678330092483712732780936721574945486847029240717298896245613346875286463698698511601260659185737384170499499427797140462015760683115535790888536674905488888385879963937224762590997270648263869100380508364962817892563664721157136899850470874703802642506498101598122336036966262484273041848867583377147805336940357857408106585883023939777528572034102175696606624010521513362528964630042752000884685812314981985771848031602894214774495072792406169337479472843059527756074594287063270947250813593346311307417189250453578234577491603184798417613741956634840339680369361038883627778028412039170959525169395570297814193258287785755072208886744192862228062307938319516728683819903037950121324697273058873522624724835034324891630995495560725364276080304396511113862565421859658283532351163426226196052840036984180599430679664660283853948388551191106607884978538032162406944039533639325363816855281332313830764435300994678858665127200741463623673369538920884153585341797398441825543068942483110041724868505303888410998852084982505798280782615113360268353946520668093747672840986851570655996307530036495279227800299326909157751549837366850618434169244161250882032739042554759281788302735910855575417727065123933595329001758868986007354048176211033404755733933368188348944479111469598536219954691241587554483021503672840658425864858758425286939992374839585312510178565533558791227810705802905838289770524744045855952907687025865168628925424563807623769700392470642188378079817407161620522315598611278709712365196021358951543761818882621670748503879474384595584213116635254798328302306562314567749421903196845567568170406014043328842905710124762278545616395102327694371706254138628151021846951108629658548266831573013483029295979582257486757452264215922355914570111493621463090882880634170434897601108856789957935130988038739346397937159851865476939286384560336798654770596755774183498347386566319430879759993409771084398069555664650323833664753646429688827680397627110719414955809207931959559937277833286357613815355911993030672509694518436408919752703370777917710746844148167870245297325973751386781571899654170627613343143438917805194446741440831375055650662333021883066505235540137343399694100940527421008883457653600319799148661431452688719663876717310977927538502120439782617043898293570084328942256132308772066193469538628269949104859983058973488414656621623096917711620399342662798779036962419426959870796198527971587837269182750755790472333893251133604221665720345504196812195068271571412548976896310481696691199464531415673986005063581683569307468861654126863030784566916560920747295383428125755054922860974975756822987929089015417835387537259451687391425019088905549007995334034543415805928380173262167332992378811331277031787335338888902528987885613878337817558910901348811643073133247005144496724070902083793442573716018994565394828273043559337242194510032809824103926243927042488429560454506775769352458775619349315067038777655983695934482688493348385134384739193343186855652037581723880635671135669573409815322083665703871932676163766540259605174126498767626379656709617374529059021585086201739021409030642367880635085322520982144863881496315882144054238174021763490304938498935609707884824271552690898148901039451742737195611010908663143721699933516319638677961128408954534313536945921435480857110800926182451288822611903782980096176313019033287210371960088759079565796219565038486080635030976750482068100063172618159377337649209005954964518158251131465418641718009089820779348051546995563206154404410151723382018000761753112428233628887141664945538951199355309812808255329287443756829532683492204575840720277898211624356209965941381879862845488527958634604454116797774919629626407054104336153822994661644011125231006396801225022456170995063918974591524204583609988283025435580387836508377933532497149878758008420765483711782641414549764562514756417376584095905626248669115818084461308273856800472417727047301663855869246028533179349923654981716327479133742018246489490346240831212129785319955710529336388767620574857123874599675889397103461257621691683252209776464924391856646811933342190444452096028271274735108240398146955096285079320980976373356883766519483081518174793567576737566631556485873554827001520092349140574699110806917293829813009424629085052174058178087976735990661495601323843262073907131232058318796292088536167337867596319200429941922455134618418298512806407942715362024217519444463744148323229180557749776052808335583936358895710977559275162023328488770070334870734013879566746213879415935833108833230736740796300721210889199799156855280864443507149053282157526558896663766506004821164627883283379867128366526147467467117991618798390883510109657898900346290573252667100844834961811806640312495352230605505249191324995572979301293878214369318225257772518227374313073197892663605841776744683317049249263965076935425380130065456411853293745421151847843574292344073777055118189165020561059236434252260838811948496214583786170549087968892693748783437578956053121765901770684510005625473507943031114053202227152628325934674874886970466362619342001468606557536814072315528364963128722364818331874223363531330260927611792684525462834019019620307430682095187469067538665868949678295164720899904651960988034471126064382431221333180447526057039297695075950396600849821260149294790347666302349372372238860861138540423655090237129494826904822638264637020872142033175621686937436698922647618898391088727720676950927872624836740518822159481895345337998917053972180535430771296141247713830347670851820580503657409391059990432342769506225646404567688734246653092823372728553532356287909355582699125486638950633413455735753084034444809905900945383409663657883933660891788439941631103338428048372516720146151669701240903973452112868123400008807866627526165835266455963388201435391761321095372911843419237764152775074259234170083648991037148935370517260225241904300035442993507958475465868877479741385413606159160343379091982874035642331685888516643928018658465346780329342293237287899032934551594724387777797667009240467613266603252204071270512516443707844122406918259065967174589476478993789655921207261876960963639234834198484215330689317892302705924653577895343511256644431924650740688752971299348408860959054341627167389351111369810885682425129976972153637775105125121878463575880708800567375358136336911988835600960583748091411800137094718693758875531517205198792042006638988414873547443225637985758663425223275955008843893496254134240715692129967739005742297421204206802668339925958285844211856056216962988349960573947823022361820067959179937303164996098030431764347780120983002526120340575458732050317145099966524800790024070345642029950979770657585069201834713878753873962346729982543965496191939918738133309937715823360788830792694384850424613350372392873906047209439262075292605691169579237080317099858659908033723123924852737696926025948642766555162483047297280300490098278308326947718673882729690556959539705879222877042719501713234790729573099307458978864132020917757397988717951794353808810126631855373337558153258244143383329551173020380983677545261707398195389135271894585380901710408600683539852122323360330558374097711171563686175655288133321693389452635870341858510179006036759981581388558750417686331598914656186687797519417460006437606945178573392968584180098613441618801603040273052154325859484656931460421552831521855704506703861582115935996805912121967568972984494103277034151969774381370725515698820091972647072327800289314896616778443836112558735784929865022631712068622966272023314556888067868975958373452313551065711264615500730893110578583757144803170550964954094784637789409041396594872077076281683782311096607972581584821652210422283329220212193452237901650628995500638644726528231982349129590154671946393510101929595098075656203959878119022103402340108891728288986079963262573415761858671429174909337478839668933873302999496722871624798783472149654124940703654085377025751558288640596776137342399366062886543184331787692727427999984826291382893595406201559532493502486383793745620396245106932193587901371425689551724215691808613577782740634210830758276459149244499786158391681461896014081873166756402521727967179207011543909147580294710205489148019947111503937281191231743290281411445884470064655718692203032320824466362033436005854702876288914121063881661717682499953840499128871698806760144237645529970631987627645697024243666902146532912130535520786488451812094605726389147791007548522511354752962294462508228865823988989228477478144697894411952963612971340387231284972964859799815833028971657896448317821007036702225420079512139313495938232489193736583387170756154350758985765193039431581017593885416130117321432328044167030858619511288434080247451047036058828807473098447779272254959837471522640323298733040089281638540521028724505035173073261873813219320459064759863077083789667472356843544270662642545776499021387885369079643925227094751926142408643452290383271353724752225496739813983028880831142403389965321821795069622891391444008513257231002054923669122611959657979388602318079261207659357820901356964050528080550339237476254397547099567386489935632024569299767624463585645587745264676982336986439613867215294443976981484420095263897222610016762821849229920179231083329815229494892966434353657067665098921843959774403940658524178151797111129194539181944573605266985893531106368465933491819892973333525284247353463790389286024700341305667536238937512054834403250614761421125530885230165195424427319786187117384421773387562675608208849352431141302355698126420022773387120336991457964814142399615511626030753027952065138253473213180915495224077747250961951608157236891705689851951684658549821186569422028783871912246928103251432545127115580933324519939651467486563020495839070618615309416073016969644236057419183566798761215312437196635585290692544829364326421922359099611163936284518756682000527432582619543062278999541417833896567195908553702122556088779269492020162124201287302275165653643670442494084517383363642570716510074321967143053819630003165697425139624160841779713557620958279556592795878872761970015096803970958502363119055002727073021767961764066983491469393440895574497983766649267413317075042824405817171512954140668320370611613243973461807574449365334653817698368542780718262850671283332214109361099046350758922242885615698722474842457251467209485039912092432616318040322689252653426088588078302200339619228181646501561957048465760701357211610990509457747146183175198044516893333123033173353361533812644285695424628025545916853292681070323593746202546603691159206562565368719576439854789468979771728361105689787751268708878911716666921268583777130731745506871807337051136121295369658476954821443107572517335572391369336985652396458632184097254412493936116559282399164267707883986904193555467493227048763389603416084476694428513894995286354296658875843904282245149927459853002437715298373088630732416950882068745222883676141878960747722809041573341406456753641508880486226029433088243242733449042787289842056587991218849211700762890476253209916458286573301981911050014936181399675120478273076469072856401021899754465911893816740137459511446456700672003134610385336458840243013927928219718675092636023181215190488910777764555404528817851992228878229860856912078875322378632341417181611069621531482153214902410852848599193381253246655030425033813181842905601476239535600555826872633398882421441693202421835297615048792122156847810076155363608482680478649288318206094440796479557217167843932871441324190111043377673099426284732500097072876687277676487117615226159229318698053056325844344946466628719787984169340747270775672131845921592582798583886108265791333999483869886541997594885434680482363343381493845177863407733519576450306983830669340868240026123738779278501386893922960189630468018232197767588796263320655169176686958196890689060200871523430220185535707532702663695568951100680550955323804280632922638546493981387805414204681843825191245601965596025169426390025052668693113205144461226539562586027341470840430048631043892322503812311195352920450968736233992325819357602993493463036389459342813837775132211825083131489476714692062409688377144371984719878835121778730584739465238403910763768301483905447799373506579627796366126536482681726739753995362077852351644499713285100671070417045573808997469498960015518170504082633051821866631478047644038912340311030953490542884032003803323756875325714677779579703629339798616366078714866181021778220619943440422642949151126758599017066864773810129835627460829551327329468856325560611843036523095173892644534600904152276736146641552697808772471924492255833964074918469927623613293227116493545634524728043606101747867988511136404373154363396100402924597200736951762039270849364692952144453718738248024564316509392761730426886810198772319437153906429420267836780731412227739579373076414736185501177853166366804134295624658084630093170958081658556618154572914940506032067440545980704676676420968060403999138926584142279649386688341110084818364857337629472227385054828359565639656095013100043832944643067126199463181524265035994054555008447161052583933537783633863473593855664531249711453565840287808296386876788750612354305583848779382620834993964168958697002616985689282727456464923316933431634178888729508591450173161873802255515095588280309165546016542065898536769418104953752755137550425965548684107373041136656060044884481320411907462801033333126634003607462453245072110883950534724908575309599830186310433876174436939504639164821912589156854462408328834536071005384664833364116204183724503175935082190005129279712550478081734952841670325296337135856719681629137659155158773262310501674278901760089034490452738966294854923522714775826422407207397916808061513878215052148302291271019717320027803749988844821021156345618897202981580102600529116118761658963793137686515369340089603281464710908908085828189713594891213725806685154167710438373157853976140409954594737595242112504303406845830139253509935510843683768235203397449261383451660525280397802892042064080482159925297004204266657250178275154895636798264118902625978666727101579734838566490958584714885287545651823683739197503927572535089928074094685855159735019582248161088925278247640238167535010107473807991458152647682815266932324339127613228826266098625773232466898986871009936048474937637894618182429853641633819006570191871657334878566876256748007674806533427367943246223445955063531580648675675477719287218509492779075020176747329900558744338581018813397336484456482949410905310384729797249864559096795172505277016489459461095061085379313634852259292587652788431393331628521948630496285707893756521945334864351809244794746595943536771331257573440322686346235034257718598766557228526508321448887013489450853763654126016262485537372865955726700231003172317566004088795962603983973388425811045787954722265271631810233359314748241947656547567976077058505478269108036093853430716254465978982665865128407973675442552021006235749059089185225972278349464301524120458569386364340239202870142208862327451108781195523314649948308205771009856443916401773633008198656052911606864165715834822435861582775512713866645281802387431479112774275686023335808912029675322142564780562231610498097058566618193618124304897730078372168751556744146311716428530746049507722800441460966205884102546992739560227147615913127688192927120640294167481255894589712241793128964726227745014565980691166780654759492769683028632921356890108038807673372430917109834801423722148759962131780997526410435184885775426731938001798551929237071949876607829805660250924850514821448779694237192560893399027830013128019790259227406660657930492121899134474434395739064098218067484520146550831902328933309784560741879490991039602781793046990943042122746890413414981767807483300467186393587757204781875501861836893822675040372601060505990512247300828535148730146360308755052035854871299830734029132327649784920299370787636926918078457209140991363047051023510477620569663374620001691984669132545328482029723215691036107894350808393779395827329495410490253388319810335620307157732710329134342517916426537794725752003619982291245239356592128300899629589256762323932105610708934490031233652276343150082972532514915577368042764015770552136503336456268189372117219056202337122780167130678517390732544148732864478022031795623738317830528840971891530827728490652916942657928315514650060499906340725259842303987418570435537831482111835345927457403326579548490217120339403439716730556992884070127573091883787756090934284877829705879022913402801839730498474169605704521716746013530205309840566703357671687601673424414238394005392057199690784879472107617767621428343179751547605055854710189723662674476653228494090099359782655932900188499598435569629508487927210842631670341259689890801239311105479910288817253072405015479989465894856245333937457957059990527099017750273950737969447317009074294824135277897836542285539378338268998995704275087261884411910499475022349969210250064446269942188586701526240231434149698910029874719113439671880468825838586790312441325588029052183466093959035960771069729194118589620998635003944760448869160782271817460466667692549654440999870945126924596230773801835559038844083359155580921799137254770398060710024415794786474598751680589722628387838858782631506277970402145029951155249645146624917723280400335860543746428473677780497406451925190106334097414223681202517773770797687612789869452194665147735838853421090576275562385944961865344770587415253264183425115037053139293966857432887567636527014890562267566026758625934855220920898181288055678664075746258164030407415759132382631816439350289618759265424413901799449714084476837053701144503896950278012242746628170552769417540391325518769079947704788270077503462489032119863279101082431989061371598123083889611940891779420471573645361315866107755306186019649410871256067546294258062130960677263022142030271124080920185452274869707406112608007881048599925797036988045684223743401905644898348532443975269268318526899116406135253140862178690390407208994315836588756117471280936433899798556217283801320703177420231970733713227947938598146851926913219609538546334009936606756654130230180489619705763503339145244840302368461304711409132073896928438726209299200157877572977055588103311961969466837565132501505232924780451025234939713452031777164694771984702308047236986648997361084139047760644220312677767080433915203528765716277223072036812678157013774951481876337254102963170753181963439641387442183976411379648231434916088806566439189230555569335620277571821140654853426735321177727082659069909440536556309683163327901861731293961635929231609740165510883110689337246477614776309127533147001520703444709284417404162556805575798244365256340048855080625510977891680433565784143700614621817451568275703237616027148721241703762259133520335332319606959587633270694846167760449897499136506684718241913032423550439141417772623832871845770115768757086433835824328914443920453331841303013272018330874250634625606249771063143571072984330634616222748706170591233857955317756307022514434607879127592967892574066600048796589012964973935653436238748840475447263760709008899094035704549126807988921022412847108936042632246960235876157729617203240316014021216801929652702766878605471125860851295030803858025477214355520634399896024452122873815871881573527250594536584709408052830417283437403553307066528706932629982391395570651248864428122868643835396201603275671740468600839030529482069199596558934059972677936204799517786734424958580939179057805387052487276805914273487042070413704010263798282184809591469133617032609520792579534694195040558395194671679505891386789285807096822312692911934562200646117866183049077745125599105212655714892657329002103801206674199341549088888605852198159669174161356077637674038361740348618031448062382215035603721378069607976943733834217251159775348441751577743743436152769025179261159214415478973466610524996490167128962598076442994971484301311098584967791580088878510407310566786238945653297605015113010228288340645306553587421583230469032203876353758515845438662090289565990918306267153355197180881315426669396271755713688404648413358278372717437176202629176002889434988779954467524280623253229925574282957220516846058395562511150166400172796165552343791909457440419305488212145876606564406496571205294319179789522232934795754303981693762957767841580166368226293687483195025188037132330893031216622519435690108573268188257368018074747848900392644624217767038842660167415829505632848806657065735798549100131006994069565804551078869835151242543352345918299113110514746371442742740867640836332615871828018897121554013632343150104996193811613094283165332227744000466980412652307657312380131662663301390033933863628211962113518869954956895303392097147349207961128593806323845086925912897951207578058798703312759339105417113906309777396181755190411789799400661988128218879914078015282333476383018457856053245813345536746287723483861742639875937254083768542491084859544636022444542291156257599537603413994333966830776175912699435438729946453930317436651436976049487787905699852025711753988542757267919021890539643789088319796134234596295543323066711772671176132435478127063409351226655691702433154255063403711148789162547023904888817843548307322516676288225767679830332239552664462633100880348076788855931694535962674698271423701087700315390193380066231293380095788028141255586682387693290604883930030983079134575929527169812558709815816968645195048490187172805145376214849491142138391171708319138083116685210102859873727124309921399735590087997527002581188509066630819117042091760755713026643070814845576365397329759990455529431630428738716636591794907123840383545258483066465282766495671406596225482292414892280820085971437572163119588412406964678983570974851976950382912997225004433572325298121574580862610664920675644062009186272723640427926566328898851184624127017908404866501151389357383603183724397436800015864957086754586757398179461123214062556132496623478389080212916301115072188622163460235516684805758171792051509344208252603420400161772161916637994192442863037345416216249194558584769649547913620936546995528616136298243571603129684956438973610428781884826397124079176642503936949376354395079652876159192934557658066267298700931256681916056291930779502979270187206927822270845669712708547173398071550859478135365862931209860599294361677901909854353297745872958911868761989618378280766220110038732866580493867642859385993719104020693373416723297207740832689375286319692006743184577679455539156889623890474097814762127968014061261659871414288564847153695511565857909245935459376059685586299934838534634257552316841139330471411955207463754260080957996314669342425637572171219704998091748312751366176705437768535779889630225450700745296775395956443297506103068741734670603460900939485952778383405711760949789976216614955174226400222502219920690831227941100776204600745934331719514446344009053754143789396859252161538971771200772243920775144132664342000034680257571224315602596261253908636994793702229594226200061966190869831235833246524994921192019941148081774593073897053687765920080522870334148464043476349216184104908331163017795599918434359284566587561217751201290503718711524016641926876958634483817106840033774528575432030585278889520008982169611916089723158246431731903647709070318566125462945073273387560912320744201524297906618829587936340352469351669696615411503845770536972695264014039184933223787137848862966479123320941431546633618641022248605710822343418773286392576704998323145430831784575176060164899516385454369571433508108475012563596267391385875260826186641575258855495365069596160962208578170499125054490678421721771180915343577056065794811701192261402418749692205799630325177492356682726001953943245825158876044636024511112359242569702499084308228075312993063735913942215227104966030258661176334418567570218190447115595226289296612649811084030274892680909878006352664099053747924438895299153757656206861451378843652540514200525111547431883652025645039716219515453304113965386645175505547789755136618125859017467745053001816738382166696669022994392169365060399607746240592588995026394680159583287112034222780954499898946513418391396282398889782352444760971754667637756290571437042096192819038551725940931549982602374570300887763212875326466197606312354817631248764600849632779969832143014644260661043534580935174167640274019522986180662730504760407990979808502625997751308290565630349187331166061834454153184026380871550003856302089802156560280599598242525478709274026015183828702942235934888687975938314434821026757648893111639036167196130207820185921246880175395023528051245719738518901406250100506556359054914985963333898465367828227722129754351819662302262910284586861696428868210261498513773421942969121135790995973246582377711955600744354702243754333274791529305815296442708963081591218417538867253513989960939891120021853033843376402218060476338166021450386952727795369251433157106995026406989615395024033193729991013249723379848866867775345101751078208760936647861655117736579014713195704970809384174508119059580583418342423778025058616770039351967150880820021265896294987457235935725986371570795623185163790333550497258139753729620916350110503190354174072834760342065329933191740843523930984778648893943857047362188593574944080761315492028006068163402569262078591226524784375932277684159671095573445603252920719652759035963282687347669012171604820912122949121974029933562063114045815781957058118510653570504294739639889139299318867619371454418631822997153899185496863006570822280736875647056872336252878799014874931971866266928562831539111912972014043350119304439882972503199588210154230393657375467006335450351759060656517997844561390484538263089469968136542574803037659530314227664965500499988617143135122359893342268067351143572864308165176648286856219742958877963381107188251253864600542546150678691819756023749646578242833272862328661162927272702341226028501887722879353981231887040387942499339709282118327189187782338142090710833731031596834364874696421062269132976027092290974099497547677366822654164584012662838470175060327872388245252425981880505772668046356046409370261577864757893831019810029713804650150917396770988138195274197317180399109934331295840386024831854788032072447412884258493155925210991703513969575530077757048436279659059606237838935939790798509280922311109813481727587028066098789721675183271483227302934047629058375024428105389620564271300013141598033831544439159575733097058015161986468442267720452247905812850046338920630039781387335855841787426747809826290542037691960864025100946432114656429273770496930764840061206905764368199407192636521050914868762762269522261494697615216749690101999103317863393973342720661726380701925868011092323036382517621127781906438033894986381270708611046906033763839448779457884339770265786515701256101780791506322733446982648375896542877516063533925258441947664267248437779642780276186510902849557632019507894061333059898128205560125445272728407648497990836214207325405651530424083154243621711774946475182724837609956217958283236990792854306087235262746421567876338073478936426263800969408691040700676118241015523727645350784069514695189111365460257689991967884923394741309694795196489458973617180565793483426674422617951378446963189615752016319901020321813232536678626015219259509956582083747186286931131142363226699976902445743244411638101344107250055445802943918241504552064629437560927965642765874902127682003654325377859953532653060084686408122401893164304258198052223742521010661522246031880492639188163682580229643795728990528643712770202219571096884668627727098139653436547139922857963977238613440975437426882288719678149754522627994383348819039777608892772289215270228047376802858416853688141148435455102822316401457512037008683246864876894481070810714157893332237085903401867517020884162145666084942205436501969065713878328737292188771548317748455724273715526372527787618583971672315388495428114552997385107916091454873478066627746223377424317625360133624629673542293489221137738879856996596685889396418388474416917472400124626653275702080720746104650757316670101595532341336257889173944580812971276929920784941328559473798499887811408000231287071352764297127413911960743230334336195781049579380265405100967001625411819706965560188086610038303344557066786375335024746549064124405654269911395634898352556995095452979694190782331310928091144748544278569590892033440469788935930278446146637938894225943004778800181953435592372572116813906108329796543342171708505767297222426072420332570670397963734379944994515542112917826326021278178076758084495086278337612146028013955046976465890925431702846513130979775422049812764339725037021944851585905418439708215369730655852153704052821598571698590406716354703815787703360170149457635973266436969518973534957793593195791703063643914760191433341424006078857233317420880234458007173718100998040079928732087489743336093206244208926724180868467492481783009062371297318732858597720217688702800814812577184840186631260800350121186638418173049791107442823979941803707137941245016894540666266505715540838592680265885453424268961781936749357510807410542051412415402781210869513031610479517193718004539600099849629192685659516543529384877856810260330666799426885552441028893386147815081562753296024348304382124298057877449498870045097733048676159821357229140277714404858343356542772496495416620088647458367157417761846941468608277575187600237295097962932667300003714665878548736582795291102668793422994561855843885133226613069934437209297681697881430535213970501260388367442824223442291520328449774059931555179739187577009674209278465591447440499946151578907593496478399333081779080261781008381278626461262804920263306647055575366797893515431979147003751576302238532051289374897871766937727365411282465567067081748904712985704222358914641311807156022774388692031061512675270002856016848477768175898227994394281959007081804513092267557848829660919631064395182784233389827349661736738755287568870289980109941276108761514297515316358763949065450293443482135157939591412031855502608394853491068886733101363700363368516963943696149464491972089007969949071098988986961222750386264035279747628303047068633936312846655286659720285677186616255377499818098048088827923915271851646542542959397335524988326067673330130809604075746960358883934607812981082062978826271751582190558234943360968984921078952581911076358820459406523613045480111344317282166890619350277908263723379624300472058846125116610706090955876962511237525784825897628266207095955829138102548461985842573223568469830591226238194086345082231517765511362233466565895422437997647644247482085965261507276828121799413708087333794821885800047733269461490905625786536495335393252005923835413350148272541015084763023112379662180974192459990416626527122567715437703100972758099088055258735683983286261797676644168692517866094449032943913278848055344957187965447449834021752344181440541049956364861147108822072036785414536345959494038852760501015762650355380985653396589062401197578818884450083564683391814632827243894188888924389593127894522456468242127621583241010567566454220024326903226196023715794378507068825339293428500611393344766345029255013036869849789110913108473915700204339147415133582000825527162391944156865994870729325640167489942166368900610806727635040019361741077890175597453149706498807234061684954559610396296457924786997675853112787189125860178724249635286888835870109273753496223275903976207062340545216209773980177609554344016522153056905432218692327906199988276408564750032343243528253604554820413350646958587224653812685046466425687038021455540493517895936618763632013130473916004651514665384707285147764854513758279257143211122695172518832072668132292194513075264067564173842815556522192050956408535607245061282886554557740153632063727653104525028907941973607484360482711764606603682069185519374384456923753246769152328444225057531159635254481347826199739881463145800626667308270858431127857985243476243490266150455027076111649190571149027896602257632066363117340605521102593951629277118242174252687479768999782355870082975074367283251450157588214442508256936771825010040721555256933719055852113447177912989527071108969022909629953365254642098646079148500478771729142250598238378144518331641058024892930369402945771810955973420764694536203976255598702947066252741681467270984903252440347373640968070547776771973159688271243215720793888822761202542933573944904154816127069177942361310041528590881186196039896077630227424829046415459759928665898699854978242557069668392177387393310091481459955659971526769840473640027552169831213098881075784371576024529185365978191786257181129880489188555649279666467875392295033721930343321861749832669492139553464414326329470366588951039570149822297891552640804569364700924573350029352430968062777414436088973006220499524909902984787508443683310150697342020258056242497525451142530793146735836322414057049808395340240452032708554931068886224514126097807619290414491816265511693633804765064536581206830199268948227342489990882115931431057200041625809581293507653260942884668662792276997923188764190305413239761188160203630098364209432434478657283305937784764397346411936100924290269151318685373558146726997565138912482699471898027031157725787756872559294813157949022950585595384275170877407428857225780213498558545391815803487302458917955397250627942948327622645647451598942843803358367026077768077592487091507726899956488153268198855202230948662723742226576163023843794857413687091172423866036794868744793419548470520710044346983188016054123211918013548048565398378464915861593930853539576625259630480231660796950542880328641530319041714453646798306378741928983719779422538128728587454449168419844789471098994914410673230626155721747562381899882995255837882232455727561979719770750891016575360428439938899557973962692321571716588819614875517740441532895786181111829408626500247349841997784849068109176659529329063084027608188032277157803533661634734729176222091776432248786735043525533195197770786985008916360936355677105504405477375425570910513609053875287686690547328939560821928134731011993566638572181416974788582519196776230217111259244133417132075100532375184990090182207611633226371099055620645236250262178053399238178421496712974997168695012387590348687534108464642803102663013286392555690053898031687953656979019269543287918050183597904908794867165343409246891489804617543106148218021335491255676174739224420226406148998207973440891394904202443461389593254780831313250100072129887119114760655928152596014526038435142273130960963100699446806613102573367047237621219656301084168122867776487005304269463223162041152812157550368408413746591728087892713380487497791760174607033562292298660642174853512435654679682715669812468815785930854885178944050636316023622691996966439852261378571331507663675906952566731594026926647065393543104178290947761601009946620181673816680565893531173204071508609524276178305466659734664247930467861277664936239443775853106036370157132724650548675180687774150379785716082876532704981620348639927563963474656013946049282280518774564484123172138844956403688751383963029909774990607189244526748636673016770129491372393041307003810593117879281943095826119914344105986560354558995307362512897802602215150271854824885077447055978115972357580112338110130052362372734804951351672985215889198277319255861237965464125813821521755060521664593467826106641445747197672252219419470411202432736026271412430564539505363465398796024164280829299196643096367379884306581603876892409357861387259986858030609738761283277392754681643140998550889268959046970214201673783253843416737978677736230563436157167268712947048590844205135736086792273380919125337382064318847347954843000846974886863856527652750824682677054216109497090861284127240479494182734337752024114548298674687286621803137254673133829027680641452456930103619760290178221921323341668865292816767146073560243673878888361830247851999416414342609163818017269217583409292806644548850940648426552638757674727515621820717060130859429194537408054421885403038211525959314819905851614190661613059751435415086082046342151842531056641694745036586878215454020038123728134840986058778881222009664742826544035828976785215975864784548421168775826798644112394037553458438691128410442153406407810358939444279502136183567787738044269935758693746774866845981370332226574042605814600869365253224735199507678376703266097805415883766327127456935455174441698442988257823595414499290952784162531426154011303203210753320535696798826574879928976263439789267164486046663435416185898119207402208243848437234825834391996813769853738608708809281763944973478772098576970125969115841864772963088301784886592783949162327816280248622952201859651955353498610484984325941482195530427205093714555942708384502816305009993318476718863388415288503989062828080896880664430842663638806057073399875687482717464259956715415159346272849738049046276180365336793394625605547450415946535871496369815213438644200844607584719594213370700575083417767942966674444272714519279505067526136884636593500155661269813351179719374116330909432900318389742061869854968195099776730974895226443310267825004052313850079417168688976365837897360501254056288363901574492090435502192995232207280880944279246993232881035518896936685172164936659154611865250592498869222565014064470917780347530655369359171056538705045391319775655046073852472215473697279116130798932727598286586482570173856916080157424469313922892932111493319918815224126935985743670517163077873321654123857452903466176795702376587907391150323206224543698885669072988089873199006108654045488472492202307756106069749086740739898034849493150897050254436932924429472173473056153274212737319931379955823080410506476938753002711146795586078858938917340179761261991581480533508794640042454499710874843016483352054863347980234773328923960105863585990701407844750847037477647395448317539540533375751765526755705608993389463141336192205938844620223121483578967756846419482601773151661139115290961166290282314873167899977577594157955486714848168378078241269825004030804928840887496839820105690314941517898267039100788623708909252268900759041008096190340088585671021094516801065315340230082148362342332895880316553891958696949691635951329391872954646157779602647552324450919544043669152325214847554466067090677422136973998378186066662408632507196215672063553020219608488295330441643906239063061678496348278404739785438356614112001291409322260101255466232188360879830578993138605740165344391801745485489592336041954326292417865996251384766452846774836051835289726928774999989582763849038411912662334463870396666494848156360784739311106849215868431037193134046091038594357735407763540521036280791885938191447767029900997018155966583910656500531712625307564161467334508270634461917147111026555555629826090342585748270376463174499168153556238290385105798892342246505166990766085365740531287945133301906372865244744374193768081000488125337832611717349380528504452304344927714789527807751432947228608796084303395014942415222905406630586032072617360922810754665324032947129931265303975371136355824924803951599469331420445540203872314726568662661462511248660456279139739727405822637420904939486620393862372029762665629001529251423439228390975491529575553440582713542880356009951004728281876533558420130297169595570379695077201429961095474594786682323687894567859668007312606868994194841993300229406097670917224730693947180608461278888751771044972413533184795197984277757736454048244320828780752957874005390560688343882416823164334593652113510486947270953524325021055893693439295684905157975963915401638680581158915831935134760243995052286602755599560643263815045410999481532878222698014576709860863967565036180745920167496649854246520849310333906392302403296793964896087970471664231519882423988816786461207956367722556291308708901965850218640396620416213710614106158761996396502110951718958545585985741967341903038511784495054322830593743295140127988424543832660897749667804091312291046171461497836744306571947698407883625032496560079414813790205371554552601687996614152304029957993085607724456279776565835475179211754454860376432657287244077911412128233592229737917970590142932952203075284220834819758728540862639804646219619140020161521681892230751653484396921166112163948568744471572469029756234293886728890797956512153075020926698470629621864376838548929004178878696790911637830900927595564319070096695471043155815360704189550993402301917225594442856320977934746295330530574343518472588801570214719471322946241538386224300754892342423170634059810429235895265116456037728451515603876359163586331426327736859070273823162211975877181988516587624581670802312604444507941783602845070453199387756401874768722377414595307618749696105118481066697761144666511841475811236537038075146060113339069621337807509448817965476962951279425705850834123982077323188666888772270188303420919869111506570972829782211593478683546909183635914193388747531010991493440204112503691145075232952773623448028296762857919613973493400060497265259371946770476443835742146335047965150211158678802516469913772112930990473070781624578052125194657141310815216894657578025506444199019599311604797422006836867102779489742002719250780194481567831406369199292473992453999856364389802438821283370332329693183535879197615702524857249124329457245357224380370391779166875908012088990546209182571335859377089595337597647120366343182493349562080596514106945963907932189970568579325927966050486390217157387375225667316466851812594409599474165549982977448519124458328727619416553743855615365772478189898870042517814396754871069882755389009537285879287503961532661634154691876960832881871580418205847876258386831268043225132970791989648582895395118096127184932502810728807619126534619545829488160039647620917540649691699932549781540407225286226440823677649248772819304749021275569479823556721761128578845684021739577846286598735560637367450911767385964287181916801125320020994209538995496649601016482858682394116345729549332022851904128193417360115414216330155762187165748246183484660826229797100431726867442498657623848060502973175473241412375948770329991748614792301497995245747294288178544739013066663794202530094453663862346692472193775156277929472671540181858337815354041830383137036596420587492327806893938751371693055248065210836510860120306317847040625268872103849965601045603123099069322318129800302622691550061832510058099387010877681425259701570622886320872622286987382258595847583804046856953344190533994861394982799260908300719091603759128189219887718619965842503732600741563329062339709253292100872278890827898703962521451531722417537680548286347037966335961597767967617157719316443428625438317838389786700783755437593321178080308905472089675847337375556999076338316316233534781051938138584098012363551936591353203405827259805564466561713692019663076175330125042704189008011683685629746541443055613815451266471229539514315062882043436743742287671914342774591153292746176401948332235612138111969896429314717287772560645456510648232161748822874277038744989211650282756010143775935177039706054025026851717287884101791008475924569794729642780094829529229421104346314711282466681997394358742802080893835390083111469927809919755404742422649763589332019279194143325378637624466206594208529044579112490463756327881693400235985805931454553630709037394895973289926554354967492792717385754393998777352756367511897515490978733957021711179050262787415965161188941138558586192666571164415050637874720664792694702837907726437905927022606241325266061308179819188198632657867276377348188493566332304616356152910046615352233691012766060223534761086861172975438442910184019631513438367965031349505500844306128979732108774491257786787018660922459015989469608921897154544159488690070782513107780097867329300405924885445911900141960762025908377313223360917255435274438887440237997197579595295976195110311433251051012584303413584496279199814416438186672316376812551855729785704197745584921199184482847449937205696526275719544148676660636924551563613672744355741893622391112937363865304588482838341956546386279635865760638163375924444562450725739983027312026566554216704534804589543754484869835626028370065854236456270602950955620807583995606932201640005637100666501631315225330812462037852215240356605975898400415923005169071911348700511828976581828748733983036243991260709785395142365438360561438427332044434187238340576837445691411739895088316536904079743241127170367943536276471797883096689599037602316892221456459551370588845911028973191125788906807696999455832418330722362736970318255338657780423235523231232366588624139279030984049571237418606658557566484901945929442174298756308613202038521360325529705670039526475674324272342858456491815171120475212914918554494105647446397771381807059494870738074179345678506239543282505739949252357629387032298612440287242832523419850841657196443342741415949598258801629510019141717819236000392695608001684056496259764421610294026515641696197137712285140688122685967396893664382955571847397873322728852584829407125619063742890051825654472959681442334767044779788145503602287410604642734335247008788312516593721205987162376362026303212797273434691225203142514418036102168501457537345872671804957652471040760133201172274262164680423395495520140696580923371964966752305420059460480300219674639377270233461562068967652323276931560418655765299838045664740649257899439853971347216305074370506997554563438245788235118716110312694523484150678792060638874747777681249703019350386389259035408377852564814544143589795851512487760913615417264920469106467911240970166962527798331236004711383130280674942471794367285115829763143598389428402253155184357627491652463494265494847457690477426699337757039513432871242312835193910528024451307519117529954202679944900997405974926799265685191784032461494909795377147889767684533566641325481564788494492825352790509916370383023435694481975986652045211147748817340397286171309744216733039505526067152401660893711649510750827830774689346250997901406517330140014440395042963270394594505105594800393281377733298589986519980730253083801809970737079998885542421760434080205852210241769647335000099041991101591300604652462945854500097391857888750588325544590154929317198132891133608604927665809711318648828405381888532234521207685443956448327656359981338812328629914602801569429137868661700255148725582456635001561735991401450730493892226845916461750759848211581556096276528521921294814686686436112274395885806417153314626399714837859508964081579576025472095021180337200308407337497206623771640588377858649024758507179427964544935131252941356998329341104264255630667376826516997099271309620032347621218895259612156592291501518244508607969248100832928601002479577988411807670759593418432947334427426480335349145691001934771714663737860506453592736811541392628660048670609424767072065433094023526269570232001192492037956738061596325462531036760200624961199125820880335685529448633760892995236054517517385544488266085748456805933142851285523418421026301363483158682691696082083499208610803406843512123042600350810307071773371348944358987503763507412363030666261461152498622002250560082846482757263471828103799168944829543075421289839576117295282533617854827837079437726903885317839349641599063095254461804680469770705237213842338328619374424013325373203441906040707775697461399741113788845336598580676938186398035571005299834315039404774690363455703371217924744366814453637213175334527237598173078105500466745722151996090380476602634847052383275370181751885380558028479364715571615484441590141568110595207861121861099283930984833155022153286456131528755842629230084611167906083006177577263128007787502472857382999591907312742256850413471895489798392753949319909583414034116307175053273636665347653936366097894181190321973392258649294302944555651456509273652482687710042791685081693330566479081753908887262394385345167898371376883086172685748409806032126487901117394310162125431829011234822850683173445956562524231899537799652616721490126841998639862028632154505094257456415524522305829449138627291596144061848747362586015083905749811560834255457323236371314939137451403511689287951671086635088905908647806359224597601475910377123451114201624289718141437357517511786667206444185972139239202377078144170347694440653767497974201380841665367912727727107882060901031087301318793684585608920702703907880401685730842964028102077531650187246163693938544259312864615353669678759059456609821859935034469366852084092687212953913995875377641204134467058073251606413518260978164163700581847142070274876424484659896426225372546273318921856936868859547128481273355596491284320633021578767928612053492832796593001611442898740992379542382496296756797890514987453318788021828638066707468990671599072578571781058861848827182319473870903277793810935249882391606964280501140087526127435020378214295596750889592534034323949179211715223255240362191207016651667724270746428882852380478822269751490181480704290026171081315121331404420713854513234207220168976334574664298582854443332253227394935280980484035114117923693804834451361809490883935543687414516590828112302768992980368311498324894265316448946930248275761830169513911229407993666162437067466359376884698621154714811821851662849053888695273465180207470942016104526524293544312062660642109188652053253640636872607365342700647080036040920236521361221259548781148933952794627934125680593861332109618749439550967350473441222541094036474585315442599931965707320557390917801237122224022406649556209170911022959971759943301698263160100571920082934795321831140158148384059222780978744292960335097368742582051977172051507040985185707490388590648264278810963937409825008369630614091432386367368896229712380121289325054643250487816493910084831797535399976196994053196154772907245959532994323624921928615727522598412968334381950869326354791851391028022989442294142491151526707357094278877729541858614363655815858462197215683547853120479919961111785978431141894793419350164861423707410460577439806072609015091798810171411987789628648679438589902855267009399445889432770851723883084850121099001183381745080867361349731521972198375207832444654696196179414862955923287096266117766753850031315971180172585495297222976909111522254397532402555992405480112916144407462222921066097494287185904626428579123411468781208746844627575469460393054758417594026630067063069454694356409691161722774259958353058829335636314707106200586047667583710027833183908811498611647271368801528651441230149190497076219162849456304179577522780321481671363513007829328619652628828421030818810838552798094322311096163054663889900847473487600028132303520000026629343367736187528970362545636738721290070724684062426523380219748748990835078175551948492099689608741982509942192241446793117340278553323820533716996155680789330682995219023199255095254261655602433462956066007086941708351138794038993110377878497595434526584740192350374354703630577851318513304042582013636593173732221413851990793395404414194048488757836521297446316288432346972066118673366193039018444085184608055125861591076688963118763554658567202865437649813261421062777359483996664235343735183659806061543638215656111233361615621659465496270523228707570223066300516559040926507069445346854763142065725516236605951584391109479729446876889778409704376412819915823071221611605420616998620689553788541371571403249828474831482646658850665584514772816292214162567374153598319935347058939773783337959053778016966579300394027141343785413976627133415922214254644945090184369951668860495825598491979605651307856432954131963068282634845008456130522613216499016664269407992069613324242134416285529080003082300293081516601850713613399627011827564550884004820921260984172069267684446547988990563056323693995596343093889156724785383545150215520291751515747729866957101473204637837946401090871668345877151826426086063024790814620090316795611979875496922029750622986044327691932579587976329326467961259965361703022128133219197992603675181845926461980901900412027896886242855149300695137879322305479377433865880855354801650463654832967810294306160289736139281269657500009748061501403260632980507296538742548114403407016608354597285911413476537106776919009538289007949133813247424975056013514499414911384501870906863792980369215325952227731415917566769667572203307827777327935736407594571697328816357155792719683223884502044040536025978127822956295329415222313851608993692912495315753369362674690152100004326187439452190170549279842151735165550523789187246011949077387769462752039748653904038645484939255716807404659001105156714047166584887560069329768148846117179276900324225074078311468600817850152396246786323861293646658570966175749263695909882852116254295474470639766244155825195046117762114439714623142145217691938279516374672579310174210896605003466448335330976945783187434302441347724624898683631639510728250356717418110798707313971608838897390024239839000877566975784187969668185190068506060655437259788253114032700794258125799917062990027347065234567923365148509427535355963768938957226368407101137679217054698040940211381153681183110292515890479555749635231068585748544143253888506398779438862666996262181205820497345081601866516932339077230492535614379938322305107146568447882362122241261477726449792792606905303758837523861862681511571965609556252062534082663574895067061419012932073915306486255393838392319828362806641147199436136166047594193809924279567508197528381586897325293714018344954681053207129523576253615619218925415975816436184252127626186461351350310826142075389956430468629960222932180786423360326048574909017893076076165973400722881501440442877569198987866509336067854962829080762012115801110762075505911443432480651484023927825604970094661479979109782392665550016173089416209616748284183219755514437452196719660203825918638251249591543672088131481913764931855523469140731997194408744143280432796963880206950837049788264762713489656838760171349658829649093966865076171526394641360883897074327431089220423759947406211615703571621021476745266579779895660403525353056055688134429703538414778078896738770360784338173166963990628014810258163909231165110827864308733870431174358548703473014029237773233596987325522821563653578075527009680303375368220409784796973813624011163741191572111561772189310865245788234188840100150170879206428112295712255296705628871931916567978888238026861534455499113829805892579576668283691924502030614147807500612490621452014385678212042069436111588898883479986386956182959297018368710978952074203717752249928689303549793597647798384280549811235165898573445881649261922850866220974846542164245046681607821603103829944453601588394846305829710360332860817054484324474764769973421180271088666680728415899256716129004121947760796014767489521044916822465477322603650937052547976689712718560962731362705519180534030145349753697897691425227711179021874123790060607654247469810002252201216634406308998103569364188652828448283506135604194878837601911411449119142119954107659532864937623285376017665212255151045279916925321011298511933284060523730419580426148994973002367280427532334470870993355187322591508479903814524714331920215995815899336254318164156526842400513098501607092475723525044190466144672114538272608708883326995047870804180136854948776344118367063683470882027852834374019834198222761909089381435620470420772830176749291281787047400416601230788458684619538997512981453027286573620627858590562159146234828171331530633031369423204194482293558807306801871044595109151059549825534263707166883046727925026675390501503567628004826459776096295723976841943883172104271224715494123668234425918560638222713556283597319040088916176511913741447783915199849073539915239820738196109603260246294439208340072635498717498385493960062972871083999515200969739019407948302972586894122364949821261696191960700207720988005265382515925585840863295412288394302133602897453057533175806283376890148963544753520729364160750352660987343107399272270747310545594995125116302101419149087227329051682994062203528914654572416247541283843597368261270079162926937549066561998906753396257679268902438159790225424488141121653394879172087358699035304754068787622349688059081185603530680058468780375226310711265422845549836537660881136375892784045801624458229173706660248282701667348770777369121824923883975654537222140217775053829897106936193025162872255292149389791878400665589674105734482270781677497098657236305688595769311641159457942576102393005640665478325594031596767919876719159538688788695542153125554129744897989772225290424584499349641308812146312780922418616906867607446744429165731889718291279655439528097871044118775858392495477876057045710930225643508168888278379491910745506903522559223680704420890213859820513247383485435393602758051906462692637133333593313059914653304042023918286745167838031376703971691012376300552899233224344300393945790003549553553802677084731801296654016801663658616776748572886673992185715493773372854485956127203014756293580982934793517693472059166148634903595555658908919272983052762758494521986757960789130545895230406123479826771998925793269685228887013371194304889369128161439225477054152390668474896943622617328187895468864484333773581971994534523789105935566850962118514384158079379334407873470870751474865269669589941570828443499365491992565639825783733372466145858048369618407095681015956553016729296187372516660014915245339450694396270619234672218582869982090527336275026284368837411417013111992171191325828014436434468736212172318295986960919321698618180719829437915301807662809887298580233612793949692428564093333367900257467028114955082943166398825527402195234175521486616015950516227422988469033672140297971288001697430988108930236230086161192023506571313303974299576254387401144690894801419611240142413181449322761197506215900776227090553580304227285184067106124206594966799500427827932997251643347995091301785478149050122444995533722067052519812718466466710677188555129513697116707127150722570958324311367743825152576560490095968719238623089060790251234116670803047675107057064872801879931514267582273711977883641897718752622617956339982509621009006026754599499579596228270022884532743976466369458554640273891923461129378872350265587235505940401528701869398480690539225170663058081008374647508520226453673278864695896905194139986852896238306645604962188638048128650241373928733072887233357754002243942941460012450754291767142366310506325483498042473460721315707432628087372245198542883479662603749761210119721969151590160476101712195990895785741691998295497172505631070120094826585387023443604571016478542941245555834355337371657383304032224804525964343454616969067248808714103018404768677819030156313176361354908096339882188065835389451948079554387295437812104623229687784035385279443786165032280308509449881934190400840349457829748671872385928950957615509576929141682507110326267338077010285273384067837374589096434692566824713345890890144632382065552678063359321911163677379799395300994848707900040376302218764835408035065206807040820803379541236433907199339187729110545763635454740567745591564103733105564098685632557659384931346029239917295585952645672951301270887856951685454040847574441509320496644374169854585441832082715591193071737458921224137966956170889330326432199174316644511466454995283489398977726872233606896039159130313055758529833818894500650672527947066258448110449957312397775875758645311387014171083120296461191031312799529659051882927058748414599872150863376964903241943057535718655173880217030606268644167237832634349763977643444481597224437683703212175180277159748460162687802369241467817086116204544394278764424849160256657195053429353819112596369923474163689532252363433581632565932107697959342231189343844411824966073483732675222309688250478171465482695472415186478096635800681396801712781995347804284021654119389115869116134516583384391960353458879129342367274597806296223128219960587727163175341672648709948925050128510177794961147094968671593803622821350732563282970356009710940808587525056811808327236023355028720646992760548103731921022242761362438261056080553445826270037486333932036136997999588561940186782656291849819490570612661152919244715036431293333978654278553949149632661868305463812821361156881861433930704213042577894088915775018189300411056264840208043630413140181384482985119500411413392946282583727464056982498487726827376207853982315863335078605394011121845512717579822937248387682428393193122801114631496357131692679451695054914874548524231860517010939431070123804373879910196499096423777716819440672568163593686621875588218196556893184517835620581519241011169593104107269481324557435941466306660083745259422255986309722933616453693632107679304009759066209081482879187399952099138372644242475207565649375207697815105414142755831648003228084403068151906975020106145925185054105629115370911567865539880882293124850392012972687951280817411646581244269926163491655893197114724767635604587098203284508027961968411913475133365428138412133362358411850963079456771264862545628803408650655200967892108361150188354710526131004132524469962338415741464545190847433335557567493109133641021161222473122597679191517368811206795453532157673951896423029233408498656494087672207450227083140910611782943950763961764514707499513756972414037741183831331464669466968680151965732892947668365600740948850125591188427845567372660346353989079907240440699608593711391846605450227299831299654763931564110965230227921179789189191253129873520960110368420475043306056936887048401260485827763467545110339504200149294604961649998783555356288202304815393992106247170808682178796227811831088605630834253128554588147789167957296452216576396947992304133763084081760511348590363118821607869209136826585905852462038224983178478771932400301401890570663300986615864342807041205770331425390810906377660056515014386692702794588496300595276527107160425990153287400100951259320508861027861061726540304156939386673363384666657701542599405441883089044652444056373775992214211545612729153229501872077403987717989299082078345552004338577164000543491904934084740164658771218535524034949011355260140026748455339916813023739241343900788937364176084861167888150388344420634990883334113965987564632257268155826007554290109655885163025009614777134033154619518249015009785785208872289725483551746854189330667945053148734993471512738927977215155900467573739177241082146530369953901529286344679647256817651274199016220830097389903844010880860773459514366927562618016354956378271769537703953413037082507657887963421258942909696516510844693307999232461711034266872785682217980680064178615541636443142100498561180611255576919179063517323468406117856761923662575733655298769812859714506633130277700382977144200247576140654912182115511983702859651140515955230393476925216752242914529175711173036014606766755943359128455414501128590766423286574392744687290943429312130614607363535806762963613445836346967872960009792152047189158361401046130317370867249040051063450641504454298409736905665017238407431798209450896341498525026463325706467714193891284068814749090381265409692986229663016443102021658948567296870401398114091191785386935044867532392679212926988902717563387904856151069972381300129797403107138510033338463766292676065565226334560464309167451759228589695871350079417652854631866133580551486199698529320896410166304246423864588843178348076935727882420424648737405064271370792738139790170159973346233123009969843023548413015903744452597732444025481782987573797017252702646590590138875163422081647684975050580617326381367097767440700997738575972897296357443067322562371460330049887073420109745405379091694144988688100089219461846750605003865839203837896559866993336754378162001138975809179459318214889894286902542637530939560562493373514996583275853522512433507936600826648242535104917686868576275969710252147678341313311147106995410435772155589984661053560860665047221153510487507630433008419877490742836281069329543881346746074226297372829603326525648438913318456840069578235175448792500018690096797470104552134102443409377858732325702134850168804182878232001189919438453072237574289666401355595300315352841246572286969849634368324603853021526935631157590838940522378612564248181737639386134790898631436376548345670026161162853385143351975571200054650050173565415560878662470094428606761204067488211450897293051087659312519703290498791706359982599052196062007817751308578950114475266817173706249768997517660427315961281833233207490800996561964325504832115990053324891177419189596146250885273323418409696983598440238436188662321000539719121174981929539325629923371122824757030330783720162724929112713985789388606199271802733907180647094873603924884100604150541783124867366042372547461120504993433904865363777590574295405458182899600192193098812220114826789896714259221816697629232144979080237428566273435262169806574806142752086224562080705475778843528311487954250068420400527324014953663278228466151455707704576142623253324305166665080383864383851567537128697327261658278914760920998797468340810283570376904820090693268591836702758547247268759892443678051692775669172905203287933183265275120988583560441199897445779109938151086392241889275794708134081926207613571205591243884794909742477378951962314118090425690140831490923788883310232087131597097065954698428199010177150725925636860131294457338629066439705131648899453035936457874700517544632271833575970124825767976579841898764871238462330390055122874509293761168593599377275699512865008279118860085804543171930247679751135682366382823894019775243985292266455319164364626826742199044852911466509950230163780664717989363294138599925185974088668250463121617094418600292392505344975890443755399797913528619691449610647865786804208481727899422367342535782509414298363204142823458047573945556859855837985657892732355353413876482277965656939594420402750441452365823452235770792384196687982228314334016722679774399384794942558646719103175787862274343653155254796461512477780115795724523726552443823009196696571205679446898793663573445868596246239343442417575571933660933603606913760066879170852819716340938388894309477840037974474943748029341829460628322060312112714889742027549555542988725581315578771987364889513034723172328217321435747326059525979432704831746324516040348640183620296066087406086280627655637950841751314443168756103310985561180934508367191366208549611032157410613710582038693503541191341264294010069433277700608785016597659196278044660586534688413067908714467887446258119320661515551633706299331038298021378175324343208653122729377414095902772553946807878546131464059381543113925735209296903869279160257202239777197608313893505665267425081455412907212649371109322727630768402776141112147996097661309080063664543878779565987035654256976978181307907828411075680416028964399019586244834847598608123524632824432290643246874248590605723478831741049047222262190160912144446252860294707295858922194108933915449296318656787035858550903350965005937685651235943546430772118569406070769024433902571123667148122688499545918645266493442269818777644859409267163653156908981187501963403405209009188320495216097611649452389139998249783057706696532762786727730473036340831086766486872896322834412217902974395917558875685074144113822999049644931937950533120867830112799435202514060349657836381697393728711167030042568446505222493189608690724591545538068960775912634048771399345084763744542994309500755669329864898672960588543590911330800135550084845067756035067231759306012202784950370928260179053701532336683459935184419276176950091954428963745050390971946208691512320084900775274580770447277331331480836868454928596153113368096759592019973148256915047655836349732928140512044052114592881057246892752074261131681256654113421026695300045303783261093234149139640830648049832509224373304530860240943554584031114030665993846604185034017138855164329682456809911265535120343218161504751259530644332982806404399549425279415673133618961045176221560889690460419104506188510791870258069733454529560371353711973434968582993233381672378253929054490825236181099237678381166230296306054932913082182231287613820289616044276467618844418221040707741173313172289125401274903510049919982167990023393976555481610024249059481584097392716703186861078998175823171126934628789249895991946019928681190220264649852680859885358092708677999156931696159690284097530161237893017148204636650498433997995484834788157711602940865934867322084111428193420284111901721096420485633187614859059673436199907979140318467637739058623497245663481753288496570966547546674369674895692787670336289411070396365789563852295908039389039237746525421560119317565220508491598083807076373956836560113425989127184950966209386150008835838599525923366845963525967922393916981131004543496698692398246124243547962033183535236556044901448496573591490203356707743302532067145136289745624229967258849522940515990648382965419145417766013364045531986925155123394089010846349071178199950286285777601978120159709655759787584754323429587778436018886338639903668343996048105914431647569928141855608495310031237010554590499199228008758612081020140925124301020986780352030072150675606898897998632630047507299522005960421548261654188008155607876152848546900673938914484318360323535439846118893425785313330564448955951131919526479538398104226157413422195705790492382699466154336779978935672393204429824864770077913979058386938931368326285188350528369237749586971084953733932419159891498143203916864159727555036083071022960585708003269036671219139996825630435497187099588799867136095229455951019115093141650308970642115069107489616901719625144674092388798916396117038700942366381946978682233572704709151766497089265683846588051334632422473115175130482372752758190785236297260931517750930812817077027339893827720449968473387201974160836670063254504668015854144485158306938358976797188802497546485776441703779492770676372602812443587642450604786999535559693960006730574943293989989019987857026146999580059414004132119124479348452343847370756657298061109309143682070953052779933672651577835690304499085007752986391929613044668611101180596972334462889773309669089413500826777592413460597402166987994561910001712626574567939366787021193183244907754287269025209539252377266419050399567007678826146565522731100298141848262936706567926568091144144788210760605314233482930347855543871999705657432850493479384556772747272205997677382997814513835971851594196072506203233111076358612413621731712294634875754984446038549210655661414540860631934937738439533694022196523484347670436846182573486532018209999645848201487707180115186085060458027111021629485489289051317786932651675559668660760141356229640155827891271260179241587176288218355301894408792294045435865527288675990511557322927646928720250451551595869703600365635193166738769348839226829308066436796109077053605621932290206419049837174074161543183768927712883646548317431846712057075084956210847707985943298300991553287897979947850233238509556284509058729215949390168411479372982627851443848390719802480394406537080357557893776800814208504832698794428372834602858567466921341773878752280479072461263954510272743412164439614707165581506472078367522278636666040597021917568844286835342385507631919767619990961446455207711878103517738498752948698018353354950078704528171477413889890165090828068432667899081498196211973649556810871977308279864705783721302333341922631451705831074616757242301821026462310944264873682329797219925428746798281809908470052504367344381633980748233993442061189454363026463269578743577807734286354005443763340737796499403446119580273858294907794836518565568577385168785729466176270526636797490479865045788233356715818287827180130492631162534705007496764279158307843828489778344674943930048205693496634617425997982468500060049735888630464887691860003063764361799046588974208826560008064231874105187582012727374549371725120889460703209683758157800699572938109189169831751980184236737722745099131357546052104758833921568510865622049141967466218244229473310401920997606016244431201777259277045095688113701283540901707008654340240125042041952112506987503483044713239043144032303393732103112401133753109029862494654779590557004396513422420538687726047637515890589742713172770470590243175209923443129271855370652997491631510553285383187504242553708853614007220941533691089778107163458544355361574313434175153276600477588484007233086288696154730993344890066512032382231935087583866005180211665493838883773340711943477260762936485970931139785688139049297227723961576011472696050705308719264751904131573451361216996216225132041185993620106965270976131424687461423337337381398004506284837693260074120961368238602622811398329178334476966030012477933646611973019499809178764392425030452612055768690882012895914601443993069537231173665308701755342584461403273918068855700727486607264358302660576904353577670146752149090718609202789409308642887836280269707121835615923731909564797086134948327086591779140519798195756452412212393119487289301671690571851482718038132139129600638496663780982700201910854029534700146447382937260937485881788691217042540631866869958062070440272913901533368712702565942446445669260141374224044865466603222051011048302601396852607934387666847840841638918476251822113074116668760128320040191013875610288818759635629294802550562353668260088868507345030471341202122376989891777919002195096094220609853628384952198308162042670748092401444088576774418276760461559972596419103258770609213263520104430472700705003081208511926692856755566259612071644030348287898581331908139851882929303188251095887942771352185238437930460824843205976669567545021565757643322301047129851435234100432594986376104676766214547215315167480396949441271556418751080373399196906872415060159259429412998894716193020631634192291816680533493940273578604569284512135763094459010715652443904919259411109076167512494871345245732538250494776432497255372044366824808745692187762874946752198725523297734799813440686811803290762058360888461567288790961049225347169114150989634951703422606114310010968319495287512738056782372547041902776740124623172323057513592234643007579611867144317809175110055068041981874125661285409081149766573918013599988625775363017114919514793401201621986070498021337861050959878452656874609634920456315461015613761524246282168051663918721415313899315873015576729423002834017644033626292834104024488621061919107995990588048105553440124462423240604339884436707865082304286670354790749115686050963444891477715855881364380755587184717560958578915729483315762829058038269995708177649622375685972973961716088555285908038202753317657637046996925855242204102196642338493903874742539770615520338974713140746640577901139190532582622278133458706316060474886315333896283547908932014468824466876454579958709392925384793088443329159212709188688594423984651432276658916538812376447359377452203719533631978751126115243829483742760574227780511400919857093938139025820701602669661598271295585258706651419844925320174682662772178973088140206734972538880850433904535766431167638066941903206723163903544457949138057085836032035983167210968405551337572517059803563869706698787561083717811081168184928558718327058250321798636674656395389632351940742218585353754615308663369313167798696941582826407983106664233021498923449893180122856087263719489782710073672991480377093959035251254413229795741471319873489185922544418678931477880027690812227576772093658963952556683685175277290214580851348994520670482473393885658921485658925854815276254819337058797560049688250287678366717620740316283293558039360817227008756719095109535076452460666831848291776303477369162142960881858131390265942950940885850033845175016288968745422099792212614575766724731161639435685392007168158903010649365813001029552018781951152227391792340880023173871751895845523769831772152164853281103523353153297631788219580800478192561157058602858911032463058343327402159246171522927846502742377278526291927731087349160109847411839249525696458102571310570218751688730232836539827561505030637660585645746980354679506921387846331335611547678971880873409107198551441439421247393137343828550168892902514191130385965792922797224006974421596036283431588855441298865875153115408270104814302221329574266264320682256241703686941431833021927290535703879974803929136331926883758250457752780727947724483316947625731145187203525193249363530904215138936079847658011852626681119474871152566758172315460483191384147532159686584712954796646200400070002442136438366279073522957160420560802330175635181973386861330903477485287336827413710820448579915695780835158345932276885432413662539905545414033978339693968715950181305025438409406926855265911988875185844233334523070638923308586669948997758606016210159617517119067354233657072768786935680142062856996679303398418263560535551237990227692214667405097967428678384123387896449142453880834546098078260499808201050208400809418683698965420606901120342471483597650478215584186477184418532746536685579757388542848150551228958794687827496978847703877344703412629932306338220488011646175500514341153674278002201592694025533597702581593819289265501830026267600229529846074813681254565145359536260576937494815409430549294672160865423993580540608212611189638654663268279857542211087305028579578579451397530803553435741453552875479777802479669076555707598519880503099448202011768480669087416511389458166740800562157068984441978628087616795273213446966259866106941691193631958407159336131017685148874621073008461594118403545551394273884010041534089758700717316432350806787946829498099519723572555842730627421493822700975105225157274719389213418538512089235239299128101050265460099629121072571380846121918636788375244328119302870036594539073916067139975547161007393137167175295200668917443746984717732642948398325015164677937152262114101279102966826258212133598256388768502088909297501045861933123647690393839328415990525651414781252233983959107430574694053488121889298941498179070305345994794213303656941812378156251652933388366239979401564104980270867801543676690319229522604287492035206616011915986481623385823435390934809397725158074165084218898075016018483028256491476808229400831908627469522318750984016529496430808786452189893219820482275571206018751152056774239387811716185081409009393227144925919275533827991768922001683918097029508747670281823097729894308803580007948579980083103495801162890218390209378551210839889492223983609603699925683498421213835788567070441623019121288538420435299315263902418723629585147527746829568607089735427531788209222546941650715238998306534154265925450587295146703791188526289774021243588952870059436746130849692373839731366265159094435578759815932852912346427557089000253032675061825881404894266689999015817394239289719586853197220966329904701840795254123156395720596007710981685173326943338130310577322044599207133971729241412141505632121259844138393099673005166443011900054066018131953584205668067945593296549794384639787866441281859210316756381751766590729193336833993117569790223606719448936299065744643514923028744193823201855697173726500540577505070539556144582488835539926040652630213076298309384892341251326621894511567178510396158411979098512906372889899643494037620257287745224937404261698259573268563871411632279594221380671664176652392876202479348215084552847582421709157497021001287371936983867067989638934224363038755505768125796661171112255901759461946070484780720274753840761885241094623553790033004286117603698189744933206076146786285894803866146909358475143147849920966129379951824328163177303826930021829140320922314606567773649283119398305931136458415534742582102208973864795079429191558154701871037897109769509035755509577870905711526460816380424446901289741720264354541919750234349296475285125500319424114881256750074322216125472580043919108165149915444611869838645153628163762606814122373615209527401545908252626395421588426200205858955851773437132232830903949221840205643718586519218069027575775585186983257057917935878831637485275795016925929273232962553122681032379333481500573367350896487060695896663829874683418586574178695223112605523205823437387574145466316420274473444629044708608010014199839384539583476314080257167790727517956436947238116889937894493206620708434171362435169465039656644756937281125964176226997655529696011934378200789780675592277164484984345446554871340662968152086253443820178667790489998121811024207254210279625075014667004403094347000202495098943532671166519586578119796213288058283432848646356853380867828278654634069592828305500790120020840715720016599221969495286316501649490935244794294062640255684858204031579225748523569013928981422882850469425455136004726251721239691196250231784656274643942719922508631278721632396728069165684802465260138317630386070840802055622800966904539302361588302693670377092945200781875605796400429575123300405719980352922810972120902467863576295212872559273218148775089612203843056357110618556314356764173192593799328334853346412989411968657742006750357276409254528121266464741999466320744427987144813453182497447431548972797322403786860391579472679587044330154916089574656574810668605486904459710541139380007310458686841799532703012567144851726158863040710857132441954044775594468207196598288859227184975456564525838797411393655992994424763355902145286605579420053040742979637722770167823268671096454046582112314902490908431572196649469097729000321705691822553053703402577762825903487376247340519465358118186133716357582286174662494294591397005061703444956487743275831209075392612275537845405135154645012201019414432385404972609536292958574890163136813195144325159579244583944745880942233967814245767089596995692796984855121290791151306302034718591303968943656706420557705716909833519807814758071738135585223811246626563932330410473891831228626535942276139882404875203888854121809081689787579245549198855317876356266126679366700872104450273200449921623218092077058467093724977788453881864815335909607016356327810357745681910232558039562432844639450692930549850236093392234633055970301395822040065722309752673612180675174053374336753268714329200885949508510680835574713082455537183787437230515039693471672585031466988744168254775371825073145580392143162755277625426891368302276798000295264254429900678600674344144501820982108200270292553957632386342542205755016619434859756983111772912378338807331840154228535443147304810987622836397541749766567660329152924831855041004272462306284592915116801490740450306892646254482432823001029703094357652928061753913635055289334191073565311781593340467632466855277272041545160904255578159253421857239853996975285260135537274327804066259889965230379674091478017104067711020332198086628109804326302185611539673107822679720684810796455440385120668979827528917322486829382981545891217763301687612818341968657268598185701975345203160415964568770425111261123380871932527634264590646439224491597827167948534846157259967750259874846595536807280270203893831204802606974097802207518228736564003033153583230986314407648653978024089681951048121765525785398881934787412224228585367988850295177203647019751385910157802793475304719248459981517408747044653427980633121040949205595521742856699351346213503052450600442765482865526524706939186650973492168291539584029776674624152566805881754026991356189111241338421480269502483122394791253495542182151643925225355648706901699446558513372061951663277721875596198811487620040006084724700612866768889054910837443982119763235564833105627009525383014497069215667146385237876193661104399027120712588145327192823844251233423718738583029256075550037910889309172280380894078444940838944459122993741718931553270637177848037145290639552097364894785625954614880760532423937569373375010862235505686589073827979273961795006516182213315059347496720168813953418579480745859058301438506452619012142635408105046047102570837026662207065412429539312959323310082722496837664697750076590640666098363802310343928420896788577560499477981264954757291668215870689353685605449775971677091558622062559648557847240771765200288264701288005310074084019169480533225276879790306104235908373580510327842087306319886238384244353480772491554701272567033468417267913561551478705407992457287089593204904044077487863070020272131308932864732751114294714297546425105249039494222165122505410757708148327858635378982501565296125574064730936568302822105968691433191403602350976199048269489787753315960192421729819496028794729058707255006698077077035051512075902724397239873333096483872351587714109207753793169738722155395936934496868344104702491961858500286178961796697431511663371342717058481411995924262967524003901820776933300396471902450636301199864421777992652377264956318704463245545807504105872004847226490835985499852596864708062219787272708357040596488656555377309429437214669269070811171720036027544336594825888943815149256534641525685617915673454482871175684280913177053960045765244923318630675346223189924593426324375860390926972605788075398084406048279031999073895276685518468750550838790800857849892504782278609488202876094660209581274176656566340471463373862807264016275543299713470748771653923315583784627406103542557298874023977263526489177243474725281721097317544114472241349193908884244840462312274433148869918110868606509980496299974798444712696241260686768358895194001224872643665628521063238385474004842347946905528708533015035716175881973681970271833804440931224501039449110945703085360430468520773810934106741407575496447936413348863484915225517093192162167244119665653633306716272900375193648413766701887468798046068033558080770490975025465436165946038058476063215160098987331607041240468599460647628023025670588640535090471296889676860180116755199645002212289311018113013372221308714777515195369588052713964608936442274518734738800199386149790642171076302741786333641616006472667347046902526962416911875102558148193441687335354512820470551302460941796056358724452196287725846890852131946547787548862882024239862490560724509725222881522000708722972721712309915818659070874459079801338029738565087914473177561445782247832608541175706909853393584735958317771594895951010058479694995729116254401422130102820450015484105061631539992345863248425823179922187356423041255225796403282279882089934456148086406724550164126297001864100052008243152822622218638498061346234201237953739385994780052021513316085517668890609120020173893131681076979274026428428342384169237555388102532936401662051576912307246384176889881038959372768694182775871865447414300978447669994210958209591127448324925067954536417908251722033920858761053302986484435022439085783363160181520746646557439361397061860829059662116852913374800607083286185727192848822897864794954418550990443254861145734954329793157547446855123755796744941477529712152016087831385170830297928394198131427744691150852040938842842760528920260082246899522718077156351719180079035899362705430323431103594523735782597731299286744860774924351816595962501975759644373934220745059824560380639388295303220304950553357171660737830230124178060255173685802036768551982250767571228711401168128744831522103017013313383285289300132485430818467747991082747879417232863845503084407636033333876899401081208959722275830584261063052362488093867533739580328790890744195343801316584517533118042242248034550584721091098359771673541319639099304298036558977610112628039928497448380315462023926293770703643029046776556557279675917608476306945396294030608085543142264647418051811769549857952489798790808949104593992143517666539342881404239095619554593448261258779856978767369429074016036751684896327280186042539687260956511549728881993382128270878091093379320219782583664016178052267412978330679912745271842446094144946182298571073448800363365483909670452837791857463437637373863339928208483289602820678367127899091948560934617976051303574313020350612740307379347076247937535968477553732209740669178555450959867382949799759130797649067256363990877978220396334135747842587132460575415463039487879778034774325542717918250266786676473506975238098522361879297317288304983302758847686241559746995170606326726424299280425814555667192139926942742495789004020355223119823953919931468179902570122492659181810041973236832244301493803457700053129898422619655536248754074889209196169829991450116866607487228451047778108028084851391081555897598388669319208789656233669648896803346534809135694083195995663312488219729721769840830941874187464311636239034748980770594892740936598849892644874979882743133293663866585105840272599735316598944695922258854481687745168360751419397156881029157299429662183398855774032296640520403206838597036545342822187458173809666987670389335386133303831622152055155119112588636558682704866776852791227697575988838547336898353077449601417977248020037653268656549810973149926629827824917484692004861987889055483002576884404711723562293697273487593406255814771154643814347921004970497936706143944681082541243333191756661622715844545067065948517253263815809082977925720846741662901958267079435059115146161896725011291020198709955852210979495627492874816664972733487246616046109360319641472974600080432341200699100656068964461989171487916798245464779248997688436250553572265848974347325598609341781274625445254247609640281680150520299204371772178987016666995674316985083171001062272689205799047233395080359633757926095022499786760176104745954723670594043799571821628031561539926038165483101840338811696276446333136447197617434525436601964242767591805097556720265066315453055935765414950695251934421863005152835223301595153513154809357449145890873856388622976401035959162679441000977543621724481655056660518136526809806095002558606398349026352892260765464610211187544694930008102971026107660268018992976191312098501540624829111241613228744178463460619845888645742729249554856379247606613011281920203600398116227938271016665877017754014954819262835948763546910593059674942184767058154249840449587432992387331146915635504508266102016079633377299960015506047772885129388029072980562408095643896398700006281354944899655292641450625446748445643801826796127155304013430656515245893642481122330642037801062756508790748410314720291569788109985178702878734135590515296311245193625688956479513316117112582567164943146859471725700346463025341981029832256336197566194501460942582108300463912676492568395737931827788326921586255141847297605178559101162890191052559094720202837502007387814189262387416742961507589712034442451548589960428041681869297258631676125214395477372679004288274843888704435750233921997060817300909742922108400778637890009569207083059425811795485095289173619626200006122836405979313911914915426441608471449113353464926689400160618891435144105129449665219618726176038186431902046901254441869249468325740518764920961727512766299977364758810297443224637872671091051093985018315066008852043559754704490838877669740418093981084834866976253397094862011089781602903890497249879350743225626128690588691130621961848741496379168378815667659984224156531951223207534091804644729046989811285420170854562707297683167736632414361379970232599165433949139908124555944097866169013072987714418013529925387812123200245204980474262456837235445933543377023293596406377368213820453144335751943760600168682047764887430403752117543315276556367750763099037843897214036160738107641426889598650954970417909965283814677310310623266941707076052812052992453477589466241381815082950500504912547683619907927091841418165126399394073241306990416495793835071068464336439568994125715326583770606672729760258268158777236123625123156945679367999756346425558475825737221220135244581105206276469340274393483974302369409171189339508813998942612003356022669137199055483644195951553366993391206747515199455148201719824034551512543620084987457243441498627827195612952923109340845798807895712173542230494431927794982203820208517049476740587865416839138840900811989599268041637291563583911332860435518818836373156347992897047353256677199475228096019459441487931253647639707924693675418065705360513056820826279603710480993230572725794254713833735230570057429589763348442856412336500079135138485830443874662035714706493258716798584855594700073249819223847545687965820287671508759691957970829501742247842439247768037261953152904522598533648255859986055123888170634823700332377829524448456166435500743738038416505464834788682666263859443130336054811109135820546378389690365238970231231407337524958652529624620449334143063846986213373264054134762259859340158059914781973372552178216571148925980440127031300135030418005612539581513213181559521551371498071638432558361582025022043447983276549774976103297477997771169334439261173382905722629611181936915735211130902929005186860913915065633248946529619811729707744059251887761076557567568893223967678349481685616860147076888335130053413851422847140862153688907171498222829639719960147716991021340777492753669611176259548771490149657678112331542822656349227334979994936786874439255003937787325857966205119037229277307153322329959533752751597481967509974088245238828451102611646029983041985382768975041160777089131421943208480548432959642582519116856430157656112888195383431506594124154497393274609471177216535408908134195382705684110456925035443305191327851957081952735941686427452194968742120104243432870274357793661152292941088639088517700762144731648778308434827527252733524292222581549938148125477048467812620700206470655455842806921125975307492248044030398793500931928870910599921832605823151852906112448097122485582308526114011325150831139613066727899920488876297750677169646943564986958012608324020778591540280187247873631119306838852330059346612102675190839102646060045067944725812419086700534036912652816175719437557365847011416759405880435612864697592125983588787587873356203901548141001910222196075047151986530822103057711800728101772492250836580149883297194166661733303138438778943266789007054873710643456239336314805191863744950350801925489833788675774779361652899596825232979206455733615385950053738854084568820331144059703804115503458430881422601055368836737376636931309369147253996727303917139413006341591405207447608845327536741836490869887857624596483965982454670019855047213833789920294917434770612658993026319181843569362426555437347477701070235638646959842274384118044484792344867707798539194563085973891842412148083660140318495903246754221510476642592240366648166959865311727815837799628700335553744894689362097817285749279160355811219579058601498500246441089198275792391873122585051388700272973010240108433935784302335859944043923501246057842519855273586808098705138011020719427522179261734845415875073085655629229749101485808139942324629815437705731271557114877706325435761934647285353919020053745011523707276928032251622372382817924456257961366284533845589267640378328261611612804598808907019295990038056683619006141489528759657104115868254686120658588259025834749064740537526242520700669124852130335054716632823348108806564885685502452251641441327521607898278727863956228425327224121985435299371781874564884734089334478458580377345471162705711670792896381832533431197023684054177954976934656234013466545714763732365283419887778575660056250368126343066037782421897105026047906459200885889426243439543901142535258673150360934898340475598599329193771088296584913329780214368054763757260346167827029052168859329115720799866562211345108994133639414140353607500647094088413012896551071650249722627212926246929647068597857653158811824482837200973542542183105834090873235510852339240305076033797151440505722020804081481312724757729832271415106706049848618802141675890938849795701466656186590255417885047791594238352112844110725538562340434559435896190507317375842831127676796003437765017847877904382404744199990181824451631504094076574692975595787291966413621719542209216466573067771809835428949536391484885455602527956944882691203184441533025189078053940626332689219734442560743349600036998063587933377189651242991118900976498961913892268442820787776565871388598233568334402035096770825487130088866095506893278975329261436202058597868739857802022017805953527878325075726059360076580257541526509668303026533468718247099280205684348780131713484959035699338010711093568958319632344621800293534510629263917582626989866444910362941836716160159363393776490441434345545620231216202016137708734486676939822923467713160414599633007371959255351841371601715199521439230724926456153743808909489034154560396170356190059338734877860219098606861202497401445609032507019114597642077230983988253879337356631331570461910661889121969195562605653172088780131981068316642908494493035582801532729802014916248718503090569688960073537903867213410739341034783524008357746390861230802717826353130007674868261146846119034594565169442611503213812802699341446520816577255613413555511708338896151269309334527397177451076881408112275057889894546917205009457087004857478067279571407440486213494618245326488573185731961860367142549219751878583308574258480849092737430832864999665380855069791990591156046920341587369744105641081781728966498601783673013159490818933899265071074038758711713051965538827221929586412005280330229041613751638662001271298268860020678879941262487739370706851536828123540954207192787220334202272938116518377286524146855758436893973219851772500679898592798607687278893640005623515008941994979214335998810678929410434504812262309716958746680265394085069426619432559508335813099012724199694979728849194017116161855152526164890100238373876200197621569048259906054323701656340591303731433822098979138664134963077032861500641737781823994667237679830285465305882168746275672028661181693739187580407840639320885577918515784750594830713127789612058974832905726283596543297466831044439573744712280965589321977260153419401539872377433417741891983311700266402102816097386351395992538223516907266414415869387957142653793318167250231864272351978411892841543476294740333275802296203196478171083008668495159450005551024677127541445444469190748922069464957061611243749795302208248004393010314261347284906373829947777494896766440739496455331627034571358206619217609844145557310933563313308877203412531322505725150084953530856403454710585558696904590790722043601381897377028348498282233992611128561497652140188144991707412813336255343419973783798077736081704686853896457876701702235791506268258159229196541011234193512193734611197756100203339915526049129642363800981332799992671969301224363301546004823359400798754168199538882456076269770007429263090776283433720379124899560296816856917126338839631882856228614289398162248495983033007866126249444409260949286146120929344395212509776337439222859763813121732058376539157692711447802359499495913880080288007581251764962870883815665902990493401832375331726147440577040641039212812565186780232542854147043280241443832476655799922037257224924958487935196982870971717668446648949776172804422386549287477452675622258940919785954788005329966808650632349351777536378641463497606470887295765231764227634880659360966529788649314243425715134986153465339800554026644296903106576552188931730192561325158507256226936899661838713203960083950986531981440384920072333485529908336330484685798437305412305823296204308569477206959474780855596385742677416631482633494693607426335144267474639389800199610152353504144322058454496532313697033430793319005281439723791863982936099451520309563452403342210024150081056372047277769974532098770924991842356204257865795085256154987764706235553270968922850499677343541491225406703634899097042857139160764234173754459462127165027148598503664515351059015894626444176128203448585604948493334915520129827022932997853442831473605725239343981901400838510951395849200813695660149269065851107973913998561512514770710170115353004313447717223949844346765270163922755539462239387740936215192182146806906005796180908704736138956728834455251537141781377183640742750713759904860568080071038265935298550681098664375334718260949948336325962019213471571846298316991759951640740995555575355316049068192547363647139899190872896519066474432903811940122735002298451683357260470963458492276888878153707519161217141565972716764617866448741090950135581853109938319721006580161066216397825921716501532184383870549448804847732582818857674152103267043952793501215596418605577318689873595568700577405537095017261339729490572875930637223894100109744505753156382282482816767639458582806661251689336075350355579552367109332667572189470791980898753753941162019078650362475743761428747566551476001949451127140678434645071775802531092830997197661364009133403099461453209688734964655645379343436809162577344394248257394366896501002897270989776526953344632921248302973813092050179306056279903482173920733437519137026601648194391175455588383186281814843306791498679400818984950119903146119448956706695565336894870630668134885832750297655008872108096393343223251106108123111824172882372790238929641134827416644408681743982502645263934499533507462602337617058689981747089518748768357723921679574808810489118344678201796392102284084687623981044364009883831693334827783777666878978665510343710477811805396741042800191957026663513263905107267135652546550808874543953719258225844330094832807110286413362538129450887459853487882575315929082313102814892092514176471467333953411009593356542917380406703786012460780883920447273652194605163715461802284851211338591833769125258057856643207638129360677172736894213304101490842485412521185007599520758765423393683361128438619393989983550381346327481642998340374834561883054621498572931813431838109879466853988698187332479914018793751295539960479408165241874759161961718756643570279704847259415210737058238019376611361769817009241011397318151803978098649126333581213504456040066482986980266943285630942353622356941084249063650854459021324866965603476632971404362800759646169402745289220321682371414787672393165979608540012764348202497885578044490246605679118942024588894311535817037597338931067753842155000586784173123481280030509985328847003944436311893329072563057786970547440260205644628795055050894518151216791697086344890386808612066142231575573198867470184838270141089798424000392766539963875363370483730007666458152068091095135517730891080390230907091208271923017992064104498453867483041488183300206883697281916409714784862836942280296695504436493922546504537967398319723337602058197722359640848831462747374002394765576002397626173891847889114450309338186480741457730583535933004172871184149680482021066582875396700404895794021517319893029766181314633131029217568803690842379741995938106481005801332468733778952835344554126402398260602478889141380875188421045247185463283748296995984331964388212833363002355322621125961957089992408367775116799217368691529897453324582349960099087756910073873619513177276152048481290212895042350033649879313068260435308641469326515099233294923221889740223770479660848937199490837899161585051504903762168258507447415516083004784496258220970522609190118155037352398853357186466389697323916403464898608135981602094153984018595236141536521785580097145243770939152425271200848893993344393899860646325971394412533007054492600101785200632977998350380428913275559930310009989779221069365385241717879221456654117071369689412988269872195913937610119154290581753986504472684048425209902170686211259038966293586301713610648451510008511371040308371793003297204307872984288155160219253600765306510342602698831304171945710150541888137182757847425311546139481704624166324284401152587615771013159620934817557223694372137794419946428648099495275016117477368522120041538927922943290107249349604447622671858370508043072527424023207456267413545152233365219371302907577708004644662044066904658224260461709274552501851692739264485392637156993470270447284150489961033155358005264550918620634921986363626452396647350902261911246782184429651800755803425787324909283910029698235273444640871828637833212278295038644979842732129232651948975833213419754342335705352173730995892426846304583598949778017974216520799174609320379470651071156638338548553123530508075272746163770451621610263807351699507671114884609582798086725676986863697005899037441673614786184858049475235278243042732361595370504572114172039928100295620088124926055894096479809793126377175926132103950004660827596411814512353592523744760513515995107692029797703169788478601743403493603816121783983355906585939795629379829655914969387353861684272559828480474029387219990466743751638715814650952312655151568407163163705710538008681216658221957168985360764803716388664122758397546521079304219005618495890547334765521582655381054094234772032649246368299510212501884649431062027989208384069710377405670957718912805506162684209981610248975872068240971895837757606799275840948611894608280338992692596039425044714201864441191997397925462623641476855442122001902931974683815532863714422706493261718930149648718343424360793530863754066784583608451192309337284662304029896890310497930847876401834913069451941079815281595851417431520575935557700040802229947828264315943893934169360617637004426544318982174619401912522932619525967453390224118377522750868629753745609189494231494663490612418363952703436517221262940062965594787394843234189504746619398260529157376706927288708833070858947673632760155920177407099307230003355598251072557257273766557657660960393787076286008804938689162652694923621185547357244318903434017174760432358667569735228809803761941227309493906212859902174636189892716950974468359602227840705178362557980872621824843388539044113544699084752659869173027525908505213575976239561505646589539470301407643906108134249662740914723672402442442810266631290160932885703218710907085284957042641517153714574857017368284708393229476230426539439940014763250880490606562513443270431128426392700273056461769462157239127519636529617385780262407595211777033054849148923207686401456088283333481058744581838058623151758872960296975660550399220666072948608597602206132238552097417465139990895197733204783164864511575464236499866391712631243711775095740109130689506439919455797787447129533132533901402182149169989029940570114930202331989815805145930233085002188501396200529818166654956907772717796549479571865454097366932700066704942798000406703590462651908562984474500538888599546778285875275473549482941256615132312599435331192370544668498868400679782057452348100452639722688399831604906463344555840718354054971480351710539120697819625492112830279601177084097384963078007188004652028619939974438099011973468328746745516095677700996741632956771860803579621777650435405802332127668093457023242871496762500646265798879684537991280832806551249975830448239911472389930975647313325074883870639306684225024079410312889204693855021598025333912369728104504975635165363077491950560071781736032600364015042768599199493330900191659742344785872764627524953167875516292306105348446190232186429923297239751389974142976356250836896601605100282724728712159332698845991530065262691451127557912872912403766571698398861372648658146252520034911117521396178750914247575546740140146426015525977687457467222028837399905616192943887792583660385619214862857894333363001263817878194029809443643217012758788350775769713083988812526701932065090559249309377430916060282758338443461645461252833236501523569312839686904398121166127384516307369473210770869010520392213967326197365135633509996452638628928898741289633603191478069673408212257686351411195757585754617618840676281765510919669872108501736621362288866022619428091754462108230684650596687508146384242915302610521991485628225348542772693799077998170906554611184417165441352217003439568714728000567517563606908995134746790843317302341556015418059236851770974778740651890859046857691153821615766697456757482535894074426634121090462855773086161246881821148477259549944843723461121500822324237874375468579864919450291866833498224560435380553522720708649947549078092084550648169212248916907720675776117267163175658303297877283177415118225385926416531575330964473845490718510376347576203169297525876357472958262632996155690579044167797150173963636780257357535336774701365366480888692303974465545128418889600879214376334101689444150813552590901653641757928157313864691311746696070506664982729792681771793647253924009392218673453786011412701140811647989174816318258205006237722094848150751013560746162137777397369029116155984153022301484834340300530128203768922494784065755207947818003100314089806693808145192938654401311127053505554211320119375137806993766191939597222669564492267088519180923904825234695252251928234987045801996014454591064964130626054687662421644126710797103254629553671390839836894488285916389766931098505887534671031328077476657441187479889631370572707106980998975590765549573786832798975188681816096197931317002306407552906771279629431007597667301255820076025675308646165463498807261721162650406844884546520956092379301613904607553481428352526918409207723601675353493866465011058638871252538558702395728780122934165481374933803362728844828425658524811301397824167143564744659999316753496823749995520952167190967268262173810846611133731854561828285584679776287583316593196542338901677066813735161631542545677986911633083401654413089987473445177963993275739742620794446231618514495667723944893552503681490183376515382964699399213569823504209466187121918182767886888846997521740998370993816316152597533371971213249605965142162740367655074484654500079523147879417153571474257298473198330223672342482606507312287305577619003535594565876954438949812745205983774908115312567155795800078677077054403329386148470791168619492402144136201720602383182265086382584887371411418412174536204785654918595965070753597176242004470320012377824146915672083364864449831542183405086347997857334608587420404948323894952122983319054894536872814362846681164695012953337917049832224761027521171157166528790384463784045397649062218274157529341913293935986935594198332366460972614634848351789216348063350548201283824644879599423593808928221058317165654829153680446429592686665719855771196393039291281248012692443115234450125855624447064627722145977071472580546993945054116496577828539591383339102705129260285871024791200237655049182845836929292341102775859858577995737009862387280485405179959962456585778843609474025814034496054294937624561602068900235521291026915821521525651941160690081463617943994425310559189516858317012197048103216692766019868117819619959906837717639816070684103027659304518339743070021875766165127831209051975367388110703071397628936066248272271043686655233584305606242712817848341698624045312984065833869297557258775607623448714639052793668011636498002116141353437105501565654430687103642626667248865312082547288189401717097888797965085788132371896146298547793610206492785205625307410102155775040004602095047713045409763971177085230278203956091855891662041260792945069611975457495834382483691786256208249795342047550492917963412144062728002756461364535727449060899072965234977726545978694799102536152250778917584094481873866178194174342948699226620361711589868649884495966811661444591085735307090332181679083159134086986217582679446380258880816042859493726474326025668024982579056555569565005640796997385312789099386811127772180936123642825421170920203638506091353348556685552924784221199812332742526124996878313659990748038112863415581198535331143253260867186613755995122698441539113886420871776313223427752731473644002884110995755821564091072595885302140629683541239444982377122028443823411420467502874634657688136937685537474156543479759206153785211186677625096323532957975644658762648347892012846058500323857878945521952448511523977302502161392785247643854388517067478506496656054075620021306572828355995199591832470419440261944951958773301760048073452475231221410748555081703414312379517179828395613374323296411912697830356117223215408824739035799724879200951032540339472849222797025235144119575950119094034542787592779256331409486495675740191584996371747469992036335612622705275492526974505878516062924817975182134498026969233890239570388421316911290466058040632123908259551050674713173348733535378076468210208356746106762814891475360083244207872508808702480067876314440447002624570386183139589230032359259490728042346294287096538979844731336813879874821744884692024949923462306917868026111616973119086943413219503592274982485316692056764097979876943829977512929903441964594226224870298620173245293142129578149803386514086887030724153484677189123537204640272697511633791182128658182022171477179455141567525464951910334790589141422004548916770998728652216026568390526268151278964961747880967721467979234531437211703887936886209511033038315333363537411905414188411415862969729227422722554341720908927829349376052588269180202542960551883890658845428925900118612728238652639797768951551479446532657041746187656399901834881266018562565857988550814420382431088518019584974364026990631061465476206127631889970594394178936986790562980582646287510390728217187365541940214368881013909980133069767609142581559923698853240302748110943109972088587083721938318619307730247400728591963633296308978670451544261429915285029649174228634774367683129378055126794112325820437846684823198226419022139646103960325338240791926235925160092553799153126801923746439862178231513943019451743708041210719009329778775472725278760374466592175865141302237076682785312718208815612766651010334018484564166430307685843953805194853629439554853492204855098015894481567972936684404035932390666779438548115265246014313186289502367681569029372344144855346037122833624242646987302912342212612779055520992610918936156753250725964464077766487314322340629825839588034221178749577292952849971847231807392703599997955717441925977869708339297427409269464639247112222141086773221876991189530774724052656825772194352121927162511109057715359264362870128920617416993506044635744241580906866829995958974246088134004110487491723971402600894720733240852994672056602390206842669825168788974646262810696066984781123018318889060328543142067956792291924772862606447159249742388370822174783683371570915536522812585491692379131103028981956978765131584139685253055103458770286287260160244095047841822059363952109578899169038275630466911603647957864937146156208538431114994140387148661143318966346362096852001128002689978470208810678992364508852083891863003061506196520934725611985831817096186616651159637171704153920901039663316871969390123140134654662475779810582201824235882943342431767968564017043757683439821338175915573479293499309936056869208152371473756256566041351127189766656903819053380022745810977715805006510101794483312794391211196076970033463899753389890566468178503800344622394870513843096076322839683234428223855548875768549116265187977922610448577909069875058070832191451616215773229086976845245054031561115634754332692030124091526281652454885182141265807517005510053818396683025313516238735582108145751765085432651459189192615307132529430160996959980762362419089556551422743116636210811804862902165477107223422313454208950937396966929931814565951070294434249611248940702839532423546598077564618907090691590039307228243585274150135226002072250279945426398525908937524193777142227728778326198089314946796374618057524047021770596626076237744075315860026235003752264907263296138734221689649578599980385103942432928622948243782692370665403204799491532443699008647588159489019393277778901011850289094661997388288844625636297786081229826769192621598319266336343645899258778223889891380118518614656361484382661060259782400355465152302730413104075615565932291776405612626069211809646122601943670421361957879074134844972258021494739168648485779441638793445013861578273190402225545963059560264573972055009051491665772334850424179744620806304056300744394196566256429940475706390096246785447877377105776343278828235029454445249474614022649472203044901564689216128494976170505503951359800834638388912875506051324161333295730984906373854866353683402839562181485756861786005918076122290620193951861749585522255511776768520673612747576383628016430440337492564018479506617164507831670393357178187295305012217396934048187488070352150878188129704168223665843833049041984651689923452891899583247992825092579799132838469723871910744480917003091546036923478122238134439979376494701984904716573700118445113771239705901363127862667710918469813417060794588868250732720333910273171630190747279008030934640644794500057378772437380733041359410974513675146765984011186976436886560239352521050398772678321549880499516732043091788525140720728204756058065280075672693549443033834053540165612353397891676004421696251525738296479368729297888240831352028766267769641312391958301148354053405407125616215111502885970630842087506585144060095741914777728405973677078304105947873610046853978102476630734943462766474309829153324495002456108320286791132863766620224676280066739785869222756507441334900928549719050650690618167758106030277173432630780083697105337173068436142253045419584125756547225768622059054988626075796574246407397101774854487737960991356331071246575429421178608756390214796178562115842028685121520440670440981578788826729200319228315777025222125248202624873230781817114332507660596984543710596797806467184847215138424320857793040279977780400165038219409626775933176340564084218278670500337255013979859454829854807855105343390516367138456738630864267390155872630020767325085125820812399921181378836208302110196982273479660532468142956625021969212504313846628013172089823265489299992866103831286757466930079749989858578501803298932416712185029393431884404256108950671954455196788831342503850468482292183200613025310541110184255866081810998772200667145534753010266596114031704292457874539126999968628225548200148407964437339471880872881337590618111348070085978370630565943021836314202816221504576133377224767055620026844991601043443714705198673041808424250790963078169470599711817297609805705189405829129879463815163692391783385201020568561705927317735940236287834555595150806173553754318578542788077872744589747885667922860671071448426599043316455856321677771258898578387102107513530870771416950758713917842837894774564620514773298628768747258677494170136496758037060240052091464890490404921013590525007447580328357041261601110916418554908139076816413590366493571791508225583239518025943707136074382875048200024114351047892095887591475689471472015808715048098734155017676069662315041691312794723194301340441345512399616803441854963971562961176289801005774233587521631544456063821103184011644845704368640493119312780734068470699956850997135692849804632269165388402896262578161512450087256413410347413332932640392657718990999344631804851252341112199750006309954635920603507523127629968778372441211287629277207518901069066910011709842254379071038169936792534285540952019676049237859926299147293306770490812401013079755177148125408151423057751586303045684692237405638053207692058592345726820651124820337482351788641791662508428346601733359386848473416855642567482978896249636826376958066262457755640499059589133702714545782375280378394533835878819314552636735496844858911691700070956424607593471304703757266608442806217444070942543141356823150367806599025273777258571747555952267772763972730288257352353903175664239208337999648348143914893068230677002770221921486944328193803055761798763784019272055517892693586939754846221469479707235991346014549476813433317503747862104013799501917562864365987790209500177589940158120734230459078235528390794013636183296587586982338781168018104507794024271560211544816322290986856383345648705715446931879470773565490368511103637578493159514691973587371114406807683112466031332325665407083221564825400834578711258287834060412214546801899134537351036062459627192707214783880212124573599227763856280952767258540533745782797241531265263786801076326381093966711094478902471326022892725368862753079496769348902177366989783484727485790525990165635286855904212465803140649453514201438335299152038121941122457085013841051847472533455691617923415714324249696558798318336546689958719233052372511027876276348965385514507177302908538502235175265110994184456305833527257003926032870906119155943992236474247350748765873773374740930334381231867680228590797066125854078375637747270574519920439754506344289243947590236882774126354062195725733350346943887524839371137297497782383394737325621121261903463133020528432004701873457606879106373760712689013635781860313269389847466868622545302249690061633510103494918063359753028247465537538611927909676901468384911824530142871314774273311395496740625033923967191585221855186839347488896025966607626024292593742864635589725591175032425079352985375218000866783193566146139727046827833499695186792700128721175677463015104766087216595615164887667404112050036383808001402907398450387441092210857212217119273850122235488797221002144239537017037900156712402015977357484564653247241633608533058165587199516837673668409912993883001627469958217105395155545599180656221632834645196682049610528826764490740166310325629099208471019991849175769560626356539080366050590446794000817430263792542811040853757119968772946458132402960864530780929336846128421220427010645376831067920602095840068332331006299384874553668195240703905131826020481606224602793755889082869218761645259124752022143149816274743300512946638421268254884649082490327315295842281087801822551023019032348256385318069249181685892995186411578849589637585541699147731242229661264611210152539371511880787188831728987068644747169924506671050357963487630868801606689304563168644986796976672049310859381579680505937431927467867373680640668453442626681914077796730885631092576973294093471244544213707379518926649897701506242871502980974572031914102384249806032827685668847258019761985203315323866954921616562086341272821028188213410856326930757873329400999163834047994174695476703061031365627614534994915328564887591073080522728348115068741844736808023047040031776334362959779063713581367265426053632744741387965832738772351618865209164130907285450106950678892449074723179426551482268919448733603156792008111698210142182904738183683379432103919418839366085856797593464434031588950966918703027734517683562041737856531778798231538877051625186022181077988738982087492844943634777375952103941078674347878032118485989808630991960747071734794510081169677992195148656114835153281973469123153343091714401788351979243680693246344368118960087139753459713024406996055606092104628939470030822855083367873582112982774699598060033532760299709412563868158936742843113633152387771185932313118256458565715938157432256481998752680530473396506057916874007217199418592281814333585723068127999907959333166373983221767274661924931808079503315408339332210426166405799159088144817192463615899137789102256330615303762427887926767529624280062919950955608832084170906326400837481590298474495801987763532010186463802775588424920630233574967988142655019473036389524465682588521087289643904638665914528294592937034509536476621769335438914600074683299032982351737562571867009847983804083641322081910188392937289457862815121889958789896755374636215058743383821449087784119530603888582930166377517528656623675686080332855305104371142317615935300821083792841979539711209359107871814359647490399991241060132868045167617970623611553348667404738785649767356829886719500691347086501154370974218460302531067639094807477146299395283782055901094477757004953889815702610231272080850292281721749972956309176463199462075324955009182849217368094074863001732877807205379900895666204788652634242239676653778933313126385817196442472127114760542674586059563026336257905462196130648163429253672103807275483314498321016340205752783235597061035348814446047097677791734448069048849636254263020824446827788654203338445286363840054289876802018005976595150173603447399992655304675747167054281546045496003745996209572669139306934002594270460974722506452712396136337742089515465374171290599213868145397271629824854411639221912680828451243365580362822410919005952741411256113070160012024226115443621723183042143819071426750004355621936560331577641505377541862685700865645338369178179055181022046661236557777185873623579998360122197260441076724192124065629287221614305646423872196185160367997467759293357087767371038155461781833123862297638545657618015081167738635131481490682732067324613005291471545732456629538811952144117884533324475189952104880236859068953983083574664502622437524725265407915926237385033898044426205876257304873377278943305784708318344970142441944285212992100098557474735855754877318081665662521552327775463078950548255009267572239882432190149278956201916415172532106564754406884887354266571251370370231867699816051663643315106975776461005549205871351676887018920800166687718480287395109233295778548992844542673709737801971678490650292808543466578553811434696800015167628636972330405698238848399993694097889152469741258952784052858696206275736994330086825235190145111459090487617973175906727978796488521774130027455487755435780423443327673287066954343070169030206529788067019645975159933361855132211709915577522008668522787767489602297282005474650885193160942978318479145814801472967787802723660858476629664128574664640158063060869245667213562905434098393554773780250038966353516224364798445885151505621734203460228531954081500669705047544134408679657956189416496394366463383646625932602578078097331726306264991242002016053678092277869487552595605241138888741312480972670527661171238263583796571624403375725085377984355221395095525596085615478280484399892221995621595277855830867218117307349820949836097255977469383905780846554885258193721456202722466441029367519381380110803857495683588771778447221021560496713355823925973284364290256788764640743573269318226997005052158510925419490531300081060284954526678151813205827309485046460581465262066152841269229308002519256282704418390094367198180177428529152401446154941228354214390442689717237672451949939128821537809688583038580129965154037647075301650970017192232475220622187390563480429693681160925625374516862277409466452097327051368433658471299905286643800675405175656781272837536071463354878994415956288839925708178248649128486983118772508506532251072793537955499236025471692863108814039153789800457990753624793193872760268432677633030117162371559188808284586040101932406248792487293034489920466103743897837704235962491080436980714965157345817283114205841752409223154960121693873455270829144788776141121975405343332059245329683317530350222630909550373729152237129696538937186876148589811414944813412387986638123775170083095221483709504568138885448268923431825258350726779225441125185960188539108499093910037611110649750981177223485038787775369599852319624246689199586187987472539304899244087194323094368512184918350715761139604056967745261686553430492499331190522970234427688863117770105745264836321898723542267480455600165406489398511698606482611591178730333870796260658967645087553035487868054676612363416785087242138380283721096432187470340928666491717957562275317790007652987127601647488970164793225565958271522289405660269297985390267655169900706468746310547241042219936534533308193029932694237994958878912687450748813837103571368271609879924603076904108435757293432627203093851616269123866242067234625969187658593638185325623050514446860923538765062186081766977905605293214418097247592365569179791504601519619935947688482300542191165270168339689662054091275906555946628732555855291017490092377376832576391928150646706141871780672561433922594271237791102718416767446011762191516300810990339530745934655438318687454381959255998991198260098650330093597561659376382791330156056112329955892525108887094325938927436829676895090967055918710546011274236215783549580475588697179464974218669673295414086336409407947754716514379685335046290213217997366220212408645116329086619039011365408814476825431397142043739101377995346133867825009013054807328674819177814035544199032195348369896045111492569906283996496722290124488910430262210989083418018194546376087170708938911413539031944654124442471037494088964454450004745194836423589702198054481545423021602677625794721394143036673298250800754221908308681491576431210946610821639526676642366441284382106202174881115290780531891090663676445021661610004858635708582699703471409632224972647873163757613574026432758473331868147904284543947167878327373665554379820089330794710766832072639616018387364494621865724186315589791472140854891886483025302119022222027029142008319833302609316137993301944698596845733282905271483705875751419507778797793118408486865285969981008647491656174254227197908104802288856209226221019385993958153502787121795888372361316702354597263532651183972239169634642994925548976410087049256149885528428174066113795313691970930175646556273176357982527503162818568256739369884735783643461582404808955468993359885154445813137233073586123880406157115445124555489741825552256233553112070559673532491025397183570600729991959161997775068668988072928025727254884794576601193683850429816397656893270976298238731988989242855185503809597865512539862927548730875995330782411623223923349865723665974273548395003441021166102583577706133724250842218471183136612241718912152029233755992181084830405051513189786681301791154621025666506515609056595251996397464562170637588974021480218009887774193952322581008666487637686643320503586549651088266227047775721729753150644266333698661370830126595519986680372806558872046540098323135703058184312400798439475292815310381174637469035802132421878241027438848738436265040114505919985597825291364287496068737648102458413756502305027750775118629044434177681582943308788040276959453640157775873216113905542033204164938452503204443127736288912156840676460580667103800451772309552515477548472223078191428504800124061862874569505220062048832363279449078597078622168885950596302607859913500238145213049498944142123831602402324509662555127873962998451088030823971425174565514570822313036205287773686147755673520382518260578302527448986481927491560285476669219317933116488469726857917115961821125266043877843643434936606520454440162465028300310279284511299510406536564444347590969347802684545737630656860332807769228301241106050336841491267739031066939944146718735841968903134019930086124161570017724579069592997035149707816861893523780396274515735423414612362793722817403627794469507894283104816844210207920594265151636909080159155913306357492047328626508531257241897418084016313385256550358229081333306378369121759029462683938799954929991844396744234370425755008132175404368539023841693382461119897662230616374926090545521705668640358252577628423008344212649996468812016890451029347569438560755809916850086299352114009790653184032802194080465303344700708932746583713605852356590860303160415950898810041398071738161116112464994028819135920792661120256625836546047826802983611440316846477861361264428579138740191921242539199965119059917010668988576588052286482068642628141956145483920532065822269950485508210338820639109627934231580394255949754265827430610987365850936771946995501801107387102543457436704481744702618462360612091548765618466732273820647941140888277052285308014403781302962893942688996275443264287850352239212785257900630748614619962291320842709372877578792265674288978418673117192546708777574078047692699634267163462188873026116054913031712836084570243533895991147524733719557604170592802650283036388620440608026557746662736470224815647821263879257403866234691194312211848606280163342328886066950899440471674733826940662629020363715127810027513302157583895309900589902763782868149341109677579847721116696912660897008893084591310925734343048560775901180386597445425929787867801545198060446810718111889832358212653666710809244564057473416624917480346860088084944877318227852336539333138325434862158143348412835864699561424161611112010040698995696061403846783687544615229758488878035613279060758003001070977620253074091839464969901366508302167383250744633229995263809756752684917758503292242368774980637191743992092835670799193859774705178728478956871056649455710500212609099457084139435782036333007000243628870412488240526307410556981837344882258506438286860436058853877949259941694103076634336032567357704820909275564704005928560538282402950926909277063979517760662404884812755286782047894137606566793893007413069860114125912320746047489192403723794639285697053881312782535900760487772760270648034346823142424477027408970742988089215956707830502098825903841099960054172817513735429762953994933962787442874555398963441000029506033816753015233158400038792876687054918966996320684745616621315385129012735780404559092321164325378537781357754093631330942002043334621269943477558595792061628733408142021833909657600648736720694682093200198218578126657838881015056676389197599088860504969448315611699077494826193340118700012516658604019919945813850470715492375154572606280700891338592584871757843520778772930821783793006542082599802026649433426703483999519114931163428213694807452738547939606065325683190387660274452980506151706585191685436153929191038987175333243242336461044178710925806545411054014069378681562241846334173324488910611671068921649339667317801875112239235422965026323343016931499225325819297562916874293972990641043176197640750983679431533036514225108328736951922813089866195855389535850378898849275709617313527554643839228255864129824434445596026847468786866206997558309139474919013378533512374688642601561212856710019738661562540506564430902667712246370614295828281830016241923205140835257660199449376179529270965531568385586680531165465437795186287234522115472400694513341847087121219309046612726841116442050340416467225826894655551311607627389555639859895872522746570989893002882272172347673025289346827121848021935579429708581223604737001956769887278149088527214657601093741532703551192261160938923813284824301884227214965071692044124466481971831468604466647687550774215571292642231061946649668093969546162573499996924841277157179496922564048517356389779702637116903815468138671170755338698520782459069710860589789156206860347800416957255372576925026852342086691010318245357718936844077646205619113066884970486137397594948500043336838239475526918512928751600447193233717253673490539281923153733426107038899169745300985779601400688147210761848388196128922620800221845827122681892812972181287572973216630375731183833624089986634141115664451193496771154575397187353471775565606679640203463652408250831309077144626727946445964962220292295694044820808720288533309567509405033959211826034540753590853210475291450453790663026794121849109076569148233925095159537330423850778647915476456167403594591712792948002161309951591123236624110689864430456966087731462860074322070145281235129392119219188014399072072870722257105500753839532263540478127168292879191878031522915118720874302781387036881863893240949992858925587548516851766665876010599509348048586754780879896439616430253934907003486435300596298750832406661940942371367421414668518289426316975856120910335455898749153303382594252712291671560063742639081802723860445414890942628484673514411165112000222091795953804578513580467546684383454141625640160715647976041871429446279342447456030001933746535755285728652346454536930234778700603679891859704322120791891598599942967550686140863927892086254216564677868851013780042904359987381176791213032113030764639044285560457397821731999010690842575211613675596001050692995762413515545948941378067349304652072645735499123148584432128025620371646036631325665740057885861144693184100804169686673302639198773535753040625343716546660460171779888701001030706868481120277046630020613789825774733465124084418373806508577123337711897806986158135176052558666261278916915905213919432936912840246275940810470259782504676367868562849090382859490587992972233829922661966919578615904020904366348747432201095890972393048562751326713113926295596498228980338051728168957724557402512346826727398631092946815258968984613419870922941033496787558469015267635879127498868932702580911969164638928310428204201008102894441141178281308210694559927577630508461846232848373229886670025622292369752612666270529923559640898910051552793671130124642030316527397787499354302273104240219922075406991071326544506630665025062600610905637788884255274095772498490429415726570916927296790735031982447545646810280012700580179974639688428941903753763662840352459441473595368929349477287002887035607990802967480392388418301336052863185587234592964759927994666945069749109547836908602945473072920606519913410875596625095570105859203388854322597317341217555593438122140409899300799841394358856154310567112920329755649582623983177000191793565929017995013775715798955136283779898565163843893582512912292792735231374904830982428060236199013423392919301504991398085706106557021367246546502867389630865896465470762512194292937361892011525138733282878113473151896137412137318531505099376378504708492993008732254428601377078545086649438644250220046182967962832500633333225721141504655722802527897443733029658785920312169714236222554459619849967158654921761070633807694544673484085418541008509071941995376129837351218807902410884171443147834119375906091634978073910604573421980078370947199639753284025218821401412700596844491409553431093044880169292504955960123992843408155070457924673437087987649440203929727865562597341091186510259031188213999080206689514697690490391340212777146320357277384227592127255026813085494026269689375351250864920512677349309853265016162124082632676695767017550686346288079733190777681438168847217722954177612041171794604619589484282597047569679010891011503679361792564723930336008770804213552154891811806638205755090407958881609707474582648957339497654101118844165737535643394378134204946891198615996774059421166301138104667510471430290927573442182900038213954880803333900478375521921887029112098541015322237422335481830207217286276939102918914947245651009822612463617712239757453746604721452320641267200132658416999774989780546057924601346273121293897480011136031975225114186052916678536933119382916654503993699876414453116489375932938958707512073697222730556583464721724452914872175707886210666252744330004291742337855658556012771492027334561928939829683718096126862038357161953162907593506519772728537482781585443674397144936239052395275380327311031890100749820535493087622900475940945027148903886868037411034767350439492264907107440232273191883991722936475143688978354179727414989748955173046824456267869974146338178284723390697695009023316060148295548925475944979122239176681647952787164909404160255648322559890964679271415226559378770765061727865624422014441882686286228527321587870391005276646679886826166834569722520449494808772513548634479135901940998778108189163376017420630666972408582948464748824779850756364434810789753054106853354443839975886916019125273194863742882026794069336727209360235516531131449495849652557084151924540908028241473890661258417756701132552555170688571554487222179385352409335534388879603584535116965811738125008089239143711095510297888683083763242336398994867310258984094274590258158470073533214958187009256515385229662005604153362752025171247005824441863287213247756952459986259745220099807599837346607502199523669993652899597151784080421528378488859854705373044881685993927922778149106057383120923047272010771898011651907096517240572566527747435095285211289111347744180761478247830512792800385016471875732362568139180548965701195589200203400852790279701476209917628895428675009550917228997288712747264203480194307222173842637825605760867593719605182294656196661094099557850535534805002652273116193795710478444695503276660452687093068721147220485010230068328607469196714635522707085479867698421349088097195813068942787158439534292954358046408077403697338557922195947468799408577921974120138033527291328994915588393217453895683742382428781461047221739387845845514968990840775140344041866900166569205469018964848886059362396800715581462663833080275803688062177839338681515199794483594211148061777515126623009523540596970845732749525690064746176557781548638740800631971016374989699330609766480731076886489208636829364038964854633802974868015824745975674492747323856436570230738575420385355117924952469430773153390505529968040441369030555132152232950846648588016482259109632348794175543313676719336789015138226340430952428042482066199489454863753456138420589714440658194762983271371151655667908803431501534313914706543622658252867054724931677275444898944766355340045202284332402842931124211915875326819350628913591867334353880524950298989029094056218370928330349025514746319237888775523179560755010953318623607672196730974238005286213636105764044111683457834054384130846056593598617667943324520280640927186411957031010898827418976514233634070712383156623449221428032421662612819911780519511699568086461483699276642588147904249592352200291773231040123208155508814043502329897314887836352265607475524143729265451059221883086018223738378257602204754292794870433260989113477967926007011106228550716323490358366935269206246526415009498896713465701130772468937901216351825633042971364193747920169411759298172929922859401644377992770349038477159563928873799175359400748942313403614338755221793724563465032943439398144489066267451298705370906822480154609117206651270994963938029224817461724125089447473957975278476273235513230192398693909877053717128314998420775845826827958321022034898108396947068906562371261159811152756155896389641237222722860862906656644542377435134351657926120099736928474316006081640532544705777081777995641750500320707665249838406058839765945345722930077607049694163767470410997042861389231310953999741666289048038957454255542305575256907962330119490389409600909358004434595317566936378571791263619449175931250030812923774019755251299993350911655793468570621440547737444973239338910342804038860424655175885460234883604166964064154052854635319941101762432264670012370187614402828518016219867546136742016185812966622555113636859860701213986377199092873679216379961418275721211903886627750404519186790896236406127468339190803219730667974164573236031854131881060934360687799527357075698924535309107575568757656880806442227927396586272900316500949621730269534162643746825307419885672168622140776482653058052855525179287216867989499262267378862595066867513796838579285030926348891121455055435685341977884850282962327492156481707641642004216973363697458653443132480742868541238925764642837018592943085251503005632398736257941808949338087236078035567934310659342209520406470052666979593736122418253369323094604956401730356439278169276803575655966945882986978333213565772467011325568098162801141523773831873639338366016224622779941337860768982692727089039884492472611708421806516604529305790542766279864229652324562476906341941149013707737316119622723189480023826198728549026359839619475139501340639296638956589147899238186685338741339038096687495340684824867949538568167108955146316245672073554315841359715773359383872664826474058371375172215091036071711543260765410857075740311501074907044418877682446601252220241176042179712744207476878134523547455990770446965693132961756415300849940464497116685609487728947083915086255413893697681459378675359453768664695968589747673269735941873910714203880660549884532287755179899382766275778030422078451646465055197904766383447995070387504139744747037021111725739460122273736123465265608863256971626271029917561768068067939456986853800715834741348983316346455110683224557299202794354613196918101311051100972618443999462640095898271494247734161388908911716046656844324062174486083708496677505388799613352983086573119770687194124747138989618616602319763615120127092348634086646295560805733930403894847445472930463922665613109337426822753568028418529494041664468200881548167671171218891620207031387574776746169601045855448274964107735317214043150596707122710998165576530339390210803599119253074106383427974166821234816711135842755073838547877916578430615825914373346244841899351946563906260539572701718468006587423154114696255585808601321006399626242747201698782919856098841427256891242214906574175274143341491000693157564334787752816467478356099706387099290154269297961427340605476651387021057152711347619616330757638445705557155776389717199696938847825866467230148425884587481942632921817775666042518733529684633100875550852780192925156134905438059322008508383101282866658199547654004902514192436143632652927502788413272075810512286727723388502358593788376993532776010248715458776697059597481874719434409046520859362226416641303511566009017136763361305858773552100790805450214199372983826849069430659330517574005003463002499688696206394551934271871732830835091147305429267796816804404218014725375959592596075524266157194443586104394908355784411903862001484552373285041118200972214893633415938976899802326124873572232551003117675539584692773535986735404036981654828645459502958321692490151724397729487085385318126683572667060255600606296749427434543195824391261403729689642385461081639129457613610865764732922797282597371646217001198412389427501645426010711909369425063191464845257823781469982394400845679525128416447734786390461455788982950666435009773708484777803782967761785674179062011198845176419338590362212155474741163363353500398472845220351506311942569896015557557612695984880386657448951984010748754322829634840358268387221012503634061463776310938597210042793498939955985538283260687146563042995838511479259671717004304851320672132965298330385365523199574273319271283286421496782356551792809044236460534790164675789741303482611108357059655518573605250462975096572369733289992414640649260699632851782483672560933170755221932418923847850538237484953368896912313397372654998148570276486590275820397969435203733649332481334183749005911723938041276053815846596328269903507409746969394309530750323672597531466760459102925996375089824178013891152049731643457637423615925378631904174241339753576105975524198252102903198204737129608079470455680774568954962975098512919589530775975279658779588207222507203876345807037210869712642303911233242027614229057290863767315392580615698627173667391519125381288906832263005236204515929560895746615198296809689782968089293510783137084228517226094988383456713922705439126828926879810401039387053761188442177605675954333416676439674266679973142066291882907971890568119863096054186595615980690622377396136093131971114336894939284009094013658770259804279702053278469470394862281027258910701430044276604952996102826925024785570143870906969494969792246331220476183578808265195285654896453035583906262332403634572621006915761529298973892869350479902197187248078366889680606037230556055022144910819877476850232266931740777104019049189226324004535691980780348937683513696118758255510064285080786251332083288565944382751610938321940296232906214373981429624111954341805387881087682259495582228592940248449952516149496383792997444603564491899860140961942714296999593216715440533779888927866519961181348087703980207197507974485872428368879093396270873132861257189956922575420616410566616399045424601132409182088750515082659624282954367369909630257785078636648856482072187254939003551112272721969468678152961534414423353532844377810374725894399046016615819426525270327667510164979296334450372048125503821201259285488297533565123487905620367081317134472631800645702330239881527239843621411872559622269709750450519779953177708143805762352354929896838945642045652920909910146083813150805611450057298051310867954141629338948506704692366730858091896646353167293395030837663894962238474085782032028553644599055449771315476825223146496426428119653605981274230114324469355092047535283791103675570322419491917176180290641544375695541453809576634823979575018956187045074959619565958034712297430705609553299016548504009857753380040949230120784543150430553083867142726266363880445384700967837026948312728135604978199601390304596602000628556542064529522303446448775513811459504778881603884688808448386965040304467819735032538769804962831087649650460055396270899400035403190700669724640091986888633282880033378673243186062669439767973764445789112542121912456078965503633645394627215364693034271067727069335669313546459862161462519692083714390707850518617440192210949923773543628726278075440356829706117953427576259349813951444486668028791286893520351706958348987544900441998568634957464276816599746866020649458667315114848398985682935568599663066413756738402945443765264923325539442744523765890044872956541295205207346439893889891908015706625052621858943173812491235605733644626585961605317053096228676130657114680689765951628284242105977416069890386812050960744700619851213676857521655514087399292079654350690184747746500066558579565215168490475062106180525785046673820659512635115294504298055278707960511553961443255231718480516647588969113465285666150308710967161258367323504794073997298101622851807895814181606408057329796466591307278356075097129407913516062808675114109182254331808671814840813806271242596730296854153953766588573309807844247987150003374981945399783349826332223781659308808102186199577354219388088653481686069640611454921597545008688381494759105560764745053858371120145173289543340598148100123174998063456764817945422520245035454643299029258820188557437407941270308284958429803535421195475990035463431406458851418791160428461444334447649469685164715560273459563243672627479472669987033376999451455293227113583228710201611616531620862923876667877647127723611061258677340150961032239593916962270275621268605156019038104469371343410014058978582436604928644951854134146577409316251093805094695174843065090510480394107417062725312149844561241408386970781500718821980440632684057380518837466552312772710797195173801788871944200980785497956060671321641775154101157187911650595837069286622092502349498544142843457537089558972413445444417899581982565051056332613255454188576046639761291801299160747625587051937223389169011495456585229820629675121514435031944734458234614882563711565121545492629176383454072053643535443436448939208191125057456208530765922080643316428009228901766909093870678456991848776449656495128838746455659021635804157016302176921836059817016313725273360004449734367029264416087744372616932294984967588235476479759952406622228197280586304790257172435547466702412068486402704176126460214850700155931519035700252461788901229308795768366253966344569691918759554016545900778212183509956931786475299711770974759958910891072770821296488835443997033188570306527724129998790621114821707658875612343247370934882717711112318253162801573100367796209963472295465137056813370627620781310053659082470175993852879128758835089912798068190756263172717506278672369531098960936980339534855735011109211429185757481668994540283560239367411677423416210099736548584825547228215434529631240698918018916921492853665736487456350323630149792698769735890593843865585355934759657710720407639914546112611823228404450475234988395601986739494792152854604571836987624007016517209388030429164955435709004089859910874008700575168722943503496477701672328412919478454674352554321779333957880751926452709983284019211249388470962259200730579940461757525734860466054311573483471920422670240730905055017936882356222963940677005374280298732411764554812250127143477865628764024559605547027589997704239168957140266917545512081797730570248161460498113189849607012946126377760110789028133012736389815838726750426917989023862640405552703274962211235655380269238817212032048586437231024386140082111227435383778247429867735993014947564906223100025026706781985704747984106105434132620333277447449693937197499307642736375262018849763559136317483752552369361185813599092746536845091375094813765864550726260458106635879800125009891345872266234824150570678945014638637839060757758096956550998700541733876388686320679613835398470267603560538363305343694690363621863633224075493121208391441036724527512864245888277694404306367884301808244057387631979846576794063079820458238560226925353619909395911506091779854326472289184298228427294874772859399082057297335590343647220697058627894891524399547819972620957557160530634054669611547898531683391284451215148402932692709298259903115930478931893791488961107997642357761063479673351664793946635150707608237180804868351042673171115364759249590174962650364738342430865417475393597092660866183822660434490160722881496921568374859578598301500575448149154261574514859882320102170020653146405542257347966192166737886514621525895393206877287759980884161801486303637980083648833160279845234388611469297499158918302717410839562978768185450503340843871377536666137873494820647032274400988299884105500299879464061250415784267835673896893942075453637498495449391044983086564940479193432057506600447536771384754299049069615169840544604946900367113250728852453293477739425047914027996917522271795501832463987672752171713040968608797654823877114097013839299562667539788631733215063985754425191308276405344587042520647095871314851419065091730227130999516185728749525506799204381408419305451918725589637538176138345060282415614208211019721862463922806975786215205467007507576535751054544030338423282336030849031165363479463599247105022692618080297422544346066203266175632979876310524897285836687520763948812415682956472968313370298656324181178578498374942798642881618220161038816021880328387060596490525433332708785235350754838476270413599069513777771016006325309256000919117192312103614476792209116596832823981584664066498688906617748588065800050745757097987414104878742031366019219277584940112351176499620064607912657114317405209220707276727596841499429842887156961497483896516952935761044058461256926997775169343083394444031566848656731296254486556512666857263192092668895232660807118878246875157824337146274822368063647728770130897815545219642051148746968620426419914856390751261448414755025281897902587534338316657889793617455467865214322482323765601408588046813141703739971685233591787428843252821715945945039516594136285270702819596117458819239907705833216701597517627767067965081581046504180541898595763736881717334126476175887205715832828944380851036809516691486884999234776687610569721612077866081412264343468289625530797098835915429296544492975685013692445069378880946522750598125502569031661558854051778683464721380919516682921539742121637617477955779482176844932972637535573330135060526689492822494402847822376490249465111878635380916986327447528998269672224582138088073899383560628084856768469486425281012997212849656433553628766793565689255450657741587724375074224347767392668853345960704144534425497820163933861947702572584756810358063247883788120687512894690512934824626392306940933189652500318422710171448005590065829693497146544489294982772096249093604366126123351430244044694836938411933987230215807871594969943813911693379382108475598409867871996170788462207375532827776090416447669596610687364344078763986876508303947746694897548573270031356921518272709828489718806603530450627753042687073650712200876010371676428492117994209416612072746074602549696121023337758085616151648815369742021919537208543466622076584076559282897892391921154782885893845041386020890513705644992389973366429452491096554487500590358435474290988982354417452258084033784536199232488654644988804760551137115357916742122662824125996964340796356690064564940155032044700786059568797192361189445645724118694444234097376719081539530597215512624609063833561222560114653420183908132021207855952216857681474721130888317248393656384689389648680359579936963050984433857792859974249666511050871092395750248205532596520024054498724135355149940697129868445921952290821851563719807625114616494974101205656182211949905871676967450381493931869216977489936104315312303525952511250338757710640700270548820591607048716568912975247939830948317669273604014927730889912078834210135477656729977599832414224352127296930416616283144076361650396680463592593824901620577319671907673494239621099967435200042844514785472893657109928683420040860375509914542128318956657139013284091117009797956218724344194157156358402191804595229384511089967459510042384186870118225504603920431047254012347298891654909239394128397756108478097063928882907405609437636801742361468612189511077227857203734559345918114488904202907186951055359320513878635779357872828599067202058864963491190708381973623923159444469224723158626007474499355897201748335575084096654088077738328505837474034427531999638115051384616756670228879164960624540741140854626099324157906109247932463575791672426934366432393043833338421109498696433023298302997606106654313719715288919156757169077949568430999341688012909825196788474894014890333424956327536940587617369571437995813086189747854542699279197194462780966693078315920567637695787296116775211334063524720968399601996772142620007621067429714971452686341173706345110257628987749754860395427571704462196752927493904327523353293844448871505247541724365948487083908621876927821620824702668981076386699988405245551986500765874127098436599579560514627842493571572229145210074333906545714858109873775198750742788638562222216307853103285244200990015603909049215156326809904692010219998911293685089022204517054399633956751624867350563706282236435015994713860811757440698113628374963102688628165484563680958509846246836885654456085981879489059662628541390011359893400131135199622243441753299904379468141384924136588346437404765045766444006595413571098235824372797536033412721523525258974480353539550132953122106563692722355208050894443513264669990150542105574429700207329392046618834180369164720333270743708191899452698447128587398816878233533575004278077852132407042588418990560624071642327687361470386426077489878447156073186997123056204156089235610509811538722871253423137826218497573319283459964937590907908194470027076297371451033684041438655280095183901189711264518923871193710122986144026169763073907942773188888575216090205802011168449817014823567258803978907956395807772486285291670021174461692500010394526771194612952407025631511848962692826206968323799441139587791760166415528827295069460425866246423693073173850227365192815212163871556117001371545056805785011253851682945213514300528316086142260645085191054911869734585111266039227754792743190474348439681516451489774610681939264108656945749534029579543095032703008633941187208206757148035603686583841586486126103743880480086985313062681456548017963285972076579436563792133349546791788913322459699632346058192443365216734615936236289581448759445157740795207209932485544343463924745792571111599233193161748058592065961660758868034766613866712836071502871029982023455904687040711655441216800399189880150973288745288199705020400455887601132705396401436243682375900377053119581749278979910073030503503583550538256295133064513995681798047470826886780724139683942480723897545255293042663341756969890321016334423923022167548795536113692347482106297642654296856648827834325655735270461586152901483423206076476878247832302834335333562170020585638909232614888289213510332399645238082878526822612559731058354950445494083573524748328224929769743813651282027946883107084758906769404908288169733757589668974069342529649634068562457131724248772411563171286028950694324787939673297332091684446081229399997561051153064009425109522458115076779209031231683980279499325370406908450666738923863177269837652898043336381012709742664448410336002280940506867793763612776463794684012152382021913448092566760224869982347217823028249151735953581088775616913851722390217019184148899958224737805945107156064588442478821577198226605480340290564883043634792225574951275150348482192448898894530377597402678482945542950258960019231813255050207232638193392375292253407309190325234428828719019158506334198556525247455700201728604823520496267561354523970596733108948659136396231998903011270191026741319053925808406602073717991870273305919373696444655961319060746516193819159574108755565103187978475764692697069922430240824559858689929193770838127489397084785443105429757560548109709413587236468196617543566660557080773347791017862440738665764418582009916186020923880664748275311030257359086462740751016038014728370687588456107831672874984046666429882170924874916856703115706979337147097399617157918052598753700694422592093857570134702983360299617866167507234377707774572479562501351631962783478912958702315931955894906251688099837814928593550568585084268695888541827658441680441082803726605691199588221276800990861625469436345815268129986446704066826531141418229349557545718773624321297686056664433532008170833232662002234960968156299297004493211843148554700781718769121759788553233734252611446206033093160186093174660113031532237900845111962904697963990837334263279448033332701831978726143333823201726779084252768388859288864308355830983884325737243612146251449440718103385166847068001993768753105904420805054795427547216179098840349977690917483516232576339448146752510250463474939115390711323696215099466633827264880069047053616365631929024191789403878916165534996224764954286878666825496375026303132216593198209354593012256712966246509490959660417234420301623608022671514365434492404736623027878438637285424127788283833575552170003368352323630948423532328925590560703326975557773047695487859394205334316359249132553727534758004778873993675122169490362663002246449329833126093712090238215919583070007924574310041345059728803776420115607933116141072031552287810689387544894514585006997972955857699481931145250067849145743913785208693621837129504436171367888946890015868664828847429033456440590947773168112605556276789148411551588805478971033578049385699612278839718056615048106938396662898065139461129399303747726649349035848872720770457021427223222391229561498325578672625017318211732232349939234240544237666202395883934852522054934815599722739363080872644406897171173202041997722468858353107097658795648621303619616427884906729009506072815415468960425377717014499735004330948269293340143983944221878637042995937731507148703808501408577872161391884136011449270963517533706501840300614077131822975754849489884822377491927866298165188441860133951237618886268952672228275940645315793958501822679172600498499268762611814378731488038450574404709283743253198968011969732858696516688374401517524440751507410620794588152786039533908599577906818933350598380904274078446634283674596015604984211727386777175428326948255217134870735885371273269923330892343164714380042460534490703838022825484685190249654695417722885176576753408697946142064027877303939865718326192248254241132972921078941471019351324340835662925350039543961257401186853214018307141808474808688686880268174770094868102835731419647241099931128184223095221487578802327829234309631683253979823268612184234899744864307301175546504750129585272925264207975173983915385495044763493579538904977202252683870069209311913756829335072378583522242255267644022130787050389794532942517619439255092120092907355586228472735373448243751100420682185495789024577567556229069451420820069205609115890703609959624369292618120024494099603887642535654537161610459049198856992819312694788622131044114556028606385718136840159802430323440735060536090505049026723471929810125604718849855499119206385062672751089434751120770881561750740741176194369998916390111155713648950380189016717015118238657880590454067649612401587202894531925034013398901997208628059531393595268006126819578158037455171073425920807336355310257445149578955873436650663772567285543409540063969132486229511643834470601268552834134237241075660593761024389487926611398270399954871594957121949164765830712218231588354524130335441895250648518847722115130303188654589342697396738793589706068543183678049548830714986270345719328155006617091764998590276662085580644200827358438011368298753322388441780157357803786448950542042973071916400469516399637827762953624834758029000713993819396357106183382562927823119389234860459659957262324074561463668617163545815637614504550249220787360909450891445856114691362586979561436768260075379583151324274629004306260212637736310842345150809952460604806885920400482959289076110636554001883625672879750784115244206447137662005199912565774746005494241305753663390984325741911651986561664427416410682254631083326529081430128191069199570927519954057532334275767018832577859043307945641260165073590481709899809046149023867984895938038729043741911942697637731531449689283698867179369750438921820313628276171380789357439159137923333647269936163636911851813163558676028448708991897650791358139918800979746590503270296859243300423561940332684938741521801112710497938800470067857895667043092681254561576324046967074417202889815503538325056596266496425421226146260879430416503781871846839244392588642416055272773023894551530593593360337503166649570194936999136913570285396501320080536333130025709218619913959456443300030963381139444934626179174624324914791243993829282503918620347804152033286075357306577234329580140345982474178050090257859025028125004794379095253982490026357883426628808230001016044455883798448646685618956770083657864718966332206761155264394119557859782264123710858461090715010155019874553393547648263843189873623044880768366536420570830486967312111712529361142840487115878035585730367308281830344717600947941772697668433500431363515585492771348009922100312196853578665037110623403553930740351299493273057558261957748995710006860322815178589021978234795355108361301736820438321747588416243064677139214739628721181993076473599968152759184257833355019995527090810210520366759131807553199393692583710092380023184223473226051138547676618375154735910590710021234137140721633849760272120097497511847985092565684495496952739046619491317280153435839199829569301073400036960602312595132969274862201626221580909919784696224439314095751419506307559570598412860704799855017602143065332222612111377739446945150876783655619248715069950032716337343853739651787385647409242849959747905886594475505228134936649843837834423835859891792674311247009364952378410674187281685992562215843722809739357084971347184075363500996553058299984193267466760637319159127528827132690219196389938045857873335409179405054948763539253391376157309786776262768918041772962877084246456239948023416324603731963338450652829371521153040028964832297085182025556103803298809527047932980335042827766929601584434606714531678611090220849436065230369068293347620129122812371985769085107141985379832993992478632563854334234335958811879313953888998593868489144479478654052034794949044629417247682771864194197157453568897240943647742059204020114693889298564763343736936560705233333433519700950969143793498117396262103002672821448832818202235558792577335780571930897433570578252458104120650266971419306934318506085496211819734661602284419137324619399688068070652431072554744350176564510787427194213800799666946597146777634731585969429478073078325552711569215711785329067629294565863127623719494077266587466968638482723066549112040009497922545740185636573713806205114190613128743985404157622053152548607108357879480711823309804570065308323114054696887526862647725012794049643159427425839583392846095700425680203255955417138600913537307690969617988665053333448926759678281804651527318347277057587880621470428799603333966559504055904221311000466451267985009739116147841890640038982945043061115407762232675089943710678292047317160445210067971308837833142451348104231758274517199607191878926825795514488632295280207446286834028243535838038636087157340014619931207869503926542896175915758220200623540250754013849748303702395638932030750005424048990920686366135030718489555744697003205739213668005504750878510444245223176185633734719696870014137580976840423048249705325720191667630687649200187905684565781822099847647011865275090808422933017217871962748087610769900906886884218215745605144616000886869667298230546358768762804047532039541726226276628581542430504812320434643511739244610787529150874938179768023280437012131206534837200286427676510134530165722398325800874123254772745481481493687883779724116904204515834234661777022692481034149336958963168012631001927361524694477044082458206726898989683486003411529147243057571343034885593311012398327253744411588163872237673406344413271485251701322684625897954651320010891138120731517580885033135586285708000440820604787185858839728820447103567197696206485844931944368484856021403396834539235741907112181722049881679303681390919175022553093606647787443244388771003703206440843066759192097427216635501719442775600623743331408994322394922623061988793870081570468649645149948103337377067218545543688445490682136935982378156767156325280358533087349170590643340894234993683526999268115985439277343447670972839729929604235528305706247038296533803713615076483833048034043011032843209700721635319930739426728588724615467389874927282715952078409097164390229147957690893609536105900842973786519405369114988665277869413339292028262105295930588942871871069035220729081204207076929172696554965965614206930855540110674620039437434660384040366247308869397582893493453814697735527766450132930015258208971995917292863189557822735525994785804761907036949305919422215366583285045766913928959544381991680395706639952236212999712946824079796793134669846016864646372137427730874702756356377493187546565711867929868092558312143649483529171374004766319752079510861520106671758172774562500767243486512230453940564932109635019776021161465163327067670183475359508782603522502633269436555193015074643215680178483416085925799839707652458055986429862935807576433204732394367280660844605780728288810830746891451310957007513123827751794789939356381896866819514936217153746927250980722454154391379221783988556886917317542912594094201161553397322764810335776419093175866570796223092500757976297430157206715165174060195974465358486566440559448396808997860010695262625633707408009124836362287067401624708651979993914642008175218649860652186046254912651574815687690737615002801182719952425576229661780523773269592635906790720353695806126160376336446586289728391994042284279915174528838664918956247686232473970058633221389186723074376960612812838924684694242340655861395498790501339617531036600318869120658277208522700296143664176208532443096462968680260054176820330503195005082683358982399435459723360750762819697932638515633487892926550712471414966867985002010056376223259515401462513187320936771869490929059478673562699123821398249704982126245102022078460695906102002220112646367217857524268487341618391657846458803970746193930461259081383834249195711195174495069413752807939731290912016641479210347930612054800942189342629417704601606748167004147276791225056738820290688491891211888721739392877161870897114132825485957832113915855403630482047114425830204418887066329102150407538875048945106143577041815526290755873067872609215181870259485185488866745308181898266839377555189739731672571538592478725197125261822430572885026613959425314876487299484970983991302594506755962167350038034717816528457550702312502225333328616257249415902504976731342793574920086632066107665100099439642000518277520872749801086491528419298317697623367760013065651794734515186630764039363604883690541941813656665400954773240987522390198417545404185031656088450384187173255132630778337638009985639142713005175192343852319250895903617404985787291195576529676898311931220263661760668302353776396891558114525186212433192804481568399004886262756894482800071866130960822788008615890161723872582833723949511538229938168176431820904396288852741836495934615547470448277552496307199139567540105267101856050085849603767207996647817422580270034811341601378544300364484776950744348928020972965886876009848347930893188952190710299649439719863249599585990204480838334932844757819144025542691705318922095011925425327992883150594416887671777067274603945601737732805697957089782873072473621567751216442240323077843871134899347563322580476714623053902739461934423252747127378627504772728922650957445682241297571615949896864468046523375767479531497194408084308055622715532957479781371438502927140508859697349080282153605173429435677259381750931712869057699452823084539399510026658479815944941534440542142212635246252255147277418461796378638957265194640764307827966184246318111036889666120520702270550613069240013663793081046328517251943358713396789157557333028908079283509470495440560700527053553843752791011594448269135964705949422254324532345052526735738884596721893615568659497094724062289486346894128330917715076292688745188694967184601973161525695686645889776894650843742282708248590083456737586845590223023198899782772212348800893103949544867668913282791630190945223291749513162809605479004564979629626322508368717604060001583113087393069595954172858945714942883947797361374136373081484769263444865090597030482355657532381114493604442739333564451395466478460823964822976712782084749239169104745111997416004628520450590381264795378786521582089250140218777272018084660084509936322688607302907274027453991175656510354218328644333791478064357252648259008027071886076341730627879649083404993764323886434879649319390233654668357489976717028539977316543692196066736338610262949082157705930575704018011898232576116199393776204347247809192303117000277445764738784114862802936832868640755546753872704039218122064418902336825690460291176270526329993751195907235499511383851700559873222321963713235098515500263955349903286384813891352225781930995007706288321537849571727917723433766094059681193885441231336947555624147585208949050858700700701091885865791843219848013383934019581328361618276050456613747941240660593548719024596962525810003425352241376405295418391284563245408113235143149911251378209579577534607317398312505377076043256160301533337990941420131396224175665695844336247345072741158662105242511747224401279357034237423097177232409159835049978761629156426944876026467447226382427243146284446783003235977027875223081637295670803329990615768584589024652800217120463369630945655735855102966561092817368330412363383393803499209106472594050850146350093791437683018871902756123532515264342736173121805350768875832841551693554967758603715360520365584519844166320628858186042609190950421447598930584731609244685233527695189539233468475035089067961337757024068848989358447162255995399815979661116016014547506567848433462359745548853060961820843115478723143927721855307070769217967466533604502728228670500032613960169923643415911842616925742183775910633312022780601796261700075106512782891640119958564927250174832704866880883726993414872188368875578031361323330728444250456576845271459286412597376617819564822248434421044068779895462752234500590197850013832359763990040749637089024750867015363598144560234328534057038218778527258931528532675030098275508054606915812681820984636271131556752305315853097256026988069950807325621278871950957358853946687408176143307339666459122225780636249639474615398427545091540765792493929078698360290884656968524091481131152037485624043884095490392323753314645372357288881543781326241651269702916549774369395793476128142040571750172700704011105357631998381968122750393976822732336557931264761697253472774746648177000715274128371861073055893610274251613710718607041342058198743422336036310903016148898822920088550189306155583169146374550568139829687767617675756926830354260653594106142702854456415647998142037347724777887461950551169833708744617317441410830721885150747620941563245188050259521850082830144621165875222716330841695732379917908319151368482428548381237221708256627936340920625279822845537865838400556052429269049146245762241144229697020144172470281418702525985353210472410698588115612708216197027612389898853498536782782875106523304310124756982611617875674170440629090919197786323453424421907220458059165091251049985596886430845409634813408706981885019401046766033488501252668220246894346236462134944145916596972440596792197876356324715092099951676836966317255786269451193850487869148355116232235315445366296690197503388305504780255603170402948505622039424278043271310790510033139047201333494839746904689858715171172903019721644319705522751815551528914439911234467058430563042671479031683061828040783419966183139299599226591748846930409718445007789361165839161950219514457883198662259772347733041765527858203269659885543960390608055779263111190476886106666768974050981585922687384048274082579148895721085544891699756272041482335348916796140528989713496071124934300027330181259530122420152686667379277147523113060269271182927427473117568458956048284540944439980534395727880375139835237880000865912416460480672288913134195364316980906131662367378062871988181356116764830115939623189881248709907212625415198328648535054263306500328441264176435021961368993736344667690481970757224273046922941608534490759494907745570220469627974498188707980849054603080063437372964528831797656270559419878903321380894067306024104192725554204686129069831071073041130213100598184078261514251474183107365583797468735831477008153595232220695398370592767046944936538622116896637669068695484855730365070839187316786934215520536197357241119758998954906794738385116268480412564876475421260194940925917552288980439352206807426867875041528225317157468170742412924684780792812974483490679292535281455458721371484546868276414767114582973967212783241960835288033038729856609925267033699367987411403701841056638962100419508951119529182891020864805524313284931832674816014585610162478509544014142172383565134063624977367074620318952757735863254985464466212318149225756532876540101059959453185845437384721286235633396719873267674753966648212035354966572081548415930140600506974127239915288500419704185479035258641316934536394226930517064143740235546941434452621639584719666565964630495443638333439488034242881403207233750878066390448056973646872760830590884679474531710511966278633766767336457948820756325846433277043283529048053495609382904264832204804411754642571302358523807574047698870045577940344297512998280239893816251372291016382097982180784389886744848863072566378690898985184113462111184040037656502793637036366801279148461796201341235191431480202078441653926915903660369518033975567489735518025696586167902651032792707744714816911860112953740118562087086117718895808962655067444846928864121497954053874865878412584976344278109240799776176866237304810305741288390928291437641173667511083843997482649082899748590382835596065991912688212786772833650077614534331034253208588614617890146827512107623402300872713480531631384111581344402610107311386071466385810271854696674822762035143599602175557950322749349085432634570178657892477372712451401784268142140886275112093623984570782545627898385424654903448887261886519511695180231909686952431083490224575436090186111359557551362932762444557941756280819898170650961533055503475954415057285774564240707606806310081709737155715387425563139376529994390738617184442742428092108566585319243427709243803289057524426153339232294101192186009314339227395120431292828468528571396100615021750959007894811139601906879865618522295421133613496893966902244850446114256994233263486592473439955818716478022541470513823022851157571598474168775208587474716067714446693219653190666123541259210467388555888428497735576247633249050754853637957636770461959647326537234511061028793570065261150032753059029025383732717727726383815870486111470364306420475272255686612446291079936144955823467241164751510828255086117843186329651437489622646615646626593465677904187198331753640614813598276562124468040444503773253250569442038533860970265050937236018949550827989658814617415033416917758818718679539512860909766347740320658348986534234279794302271630122343130548245548075688874133639891988736541664978557821445996400140446933307468239974397112244661999897738410374231643100384142338736898492983008011312146916470066687733410438809660714639835911314546474860965722473495827285128971850112256084858079501300406467259483940697759521898587215987922077084623310441393028793287229440632510027077768700237135881685710873696613003741932519022619634600707092156581376707659021437418575908024229014382377361175086550404092834464991346805899575355105692736919434947765593458902363741278142651139579576428585383316147085644904407935701103704968246506655187210157516295573010543848311937488830179032318072704062139220030925751202163488938941961086335565719623344732855928070330260909537994519980609731290616110466259969598036406761123651439762706790237141212414830947923330003952350920305085709594105744139565397323987782426252118525400113205660693772431152682514586062939074172512887306320361508481040383624624564398850826361357302028301542631826586952215333518472048016032010572239012728098380382005959502146911945206754649343901165175374738427296123595641716081931170118640884677247403321318027857971779330224685926824906502246759520539115185836003090380048608735163177074143746780465641913421218938094849024361250494381822035009071608799274854650507209250796345754605668165399028278223165628377085555543891570071185207526315851860668971453832205713506107642363567942013423656406109349576777539022047598991567895894945447173384019598215364160349726250008410213014994233864678218323908245834755880924394631444338481656294846600593944401372244186599116924796275253878003027672665455516902532854182165522005828819661164399670573397743309663188997846874376071560297208573963758030172587131089019703628776265841917714518672083411266293539657030729138906415258832496879458309916183602951540128994874228561974370704198966083060159961140370031697934779184064929971283189091220244787364383357956833083251403917724015854331964537219924144237957597327425145735766865675490127221457532936924462046908590060095764933081975846246723687998462888467846192778870070337044030714343391262910993316271736439626550340279125737434925262187339967098802664829783831119926264533587604059206885673611755272136126818403730303062120728726016108586876389689907936368531292915390619934633024928419952671613496321730551754486838100303311008821802629886587098381241562954424127298393897537666704322581932348154938718246885933233053730356593995256165172302072775529182547826934879121323603838190956788670913191456239229944285692354855382055431623024061261100408554951060005296301539521085329630924179852540192483181809718969723017171295772684402329639779757463899852250109873337456039189365253927019802957286070843035742086674649634015603775180076289001202022065460313726570100438782345948753773108306184311949180048772397074470442769869760193868828244158752485161816009237534097900229971934239417467917956014838360807610161019996452427841052352145783852393466046483693634120061899570351901035980095984647301943958291827689081348543021408346752323835283451382084882477476060805849951470644354215420611275866060351492255604512281981006476232022238937562335502200978268264189641468866325217230812922891188280166811959789658685358538702602130790409861364311341582062869317442216253023945394738056395910692616669679510323074860636508758815584203640854272966648409904698545657970667440630187939294412892795612295732980786936096821793304277441781037485514182958893486156445550386465843604048122668721987341193159366848125690373811427113053036286816645115230378246240994098855137455257885951470569485435591142999944744725295861752536092725189090296146007099567512492678176235679456862077869629428322118133960195276877605504596654412833049314127968969846511333759475120798262025317219888950446601835903710894397453785406025211287572831584743728456505198267502538248721691729202373878723962770235631998305511033795147104365346764951047868833144024375574599782870770441882456383512015623620248120108868574866515503353915097793537142144141224125821061214327841541487873292589466370802420820439739755226187524838164823714501023300400409897194310134836796921480617319501158593909429734363984516601832629495709810310213088205784941481785363452877827813424535872144940528388391584940775735211629152150363520037241746203346970604628691841120075327335253121923808517527410882800261938852445163173215864487817771206776907348493337286799283028407358174433805331618785708227527546949816048726512447318832159074355926861495229579410007919116339007122849732146903256050111993235372215487224817747063620946614200200626487287755663406134404796656921600815533184080992101704687812448126085686793318970331664418779600613929459555039882402697518684296266227593768274994540956162594061607559679900445354613022208024722950978696398582618298879946652785518704462884319359757050566404002339356324707600351586078804513214890148833572105959060961740314998078996571220131807186923625513308818462662994052437859647448994673923486098498009066448478287021218903800057977543979276237883569281195127599839345104446301604182239097312216167611097677084202876146382602864860362167090695425884733307834408078518807621023279685270358492613519087221631682012688792507147814287639936460594152764978029287639422584163098208858040191028221972753223141758412406500255545173058162058239830320886055484968914602028557868982230066583620337217565020965104961965281906838203822589557456719995335510109879293875874944456104646740290529603652274888569570227135266693151585278210519260631281806885556080689329698392070806676776402680501732887453230636263097001105641701690221827201055168464573954981229800479150922567117117215245728818593008833111793171200181502547494443526474544359444764177894741817361750622430265361834290309327655254694396209791613666643778982963915484856442401183993266153202869263180995357291934620591065208142730297894601244427254660610767288212655435923997437613015823717397500018735087949854609193923539827574510524118783276208238493971658597945527557900766420123824738079358374513191698284734964935420496514687384431278216039360379899965436023239910501299636794920437861955292368363800092192115483625836147628117226790012245028888650313135836140381867567965411530910922890390556638529763259204880449243601728160177491892473851639322427968133647230098139497080564868440723107885413450598669166536382177620754564141721985542047312508642831590990690361872088623742734625995895745454682645955103963719478713920342493555063367545925415026097657123610258918313155144930188577393628709443894745474189474603809647198826625256674410391789521180835809820760627345822924748593181846548210683732234569336602310270693447826282788901737675628273096160853879402165599556330753343435327775622918612950155452054836318111261899771790184573209235328141304875927818507107338240262498598133682268529401599151961323999870751546339154959963638924289911455263636840424354446092235068868495824434939447420213557244533355044340075734681056488856364842630227384121821843422220137300950662821642979001393894526691609704274655084791323048120609433489861956590560387649074887237481826355937819967320503872476260994723006125504168942865161352873169653028457774141650337989765432089454030467664646182605336493791688222957529603081065018732889814708320904904079230824417308734973705247023862794700173484727673288293567973896980372249573551384957905634322935925649004159953414174553974336951183476942733806169182616213771759764286058665548205714374892031743334938047087530518005295514180800093682819799279930859163844363198160678257447502092422743835542750365843954894023008434730677261624283782746288895574058730630370049918640809716263374658643884268165381480666091656977969095491335588476049901586339982824916982538470165517171494345115980038950749655794563792374952918381334712101818358660214383062479313446536104288114030612465704957905675315891538947133980821579608081769841371398449101347183958889499351369799286192790134685127627278418264521815500594187274660883381680388076836107719704951017844633641363057787418911245473440059679004301256727102491886065259369188194067182061379951809178241029850730015529728116876735579479497805400526487163191252601171884598955116237514929802658096626596603668834304709939847778286965822316287935828906488601847464982959333262431591527067719442436446671468459837851073399535436700405999501055965588532637570867735584919378839134649985668803262574420243353759858313789380024547478849491776327173617766772321106240106079644470353497582554600780604447475676138809903767876717740902714413299461449895420492284773952113568882565427989634155260741234286497436217710420465781506952060174663434864931009339570813020815863834911672127649533861960669529133343529685666756631744406971358804391095850685172575832599000606853503968157305638895032605618903724469144603216950189502003741619980393879481899837030354225780164169438776539049128400115823777436804656336067025675034661494901997997767367403194927809930277415279549213506510301501755975382690683142195342632393978232609203236222669261505903347340142889035486616479129814108704282393135395760479366392819172066532084994448087813259282836574290228670497697208747867849330585185971409315495367134490600018414427198744550836711316256019346799988528712790074154911800237574973018390753971364567328837003884731491938393713673592005633337155113566825258690663182816813520938530814332227026180144203731972722905617699983237279828826972131430181095196085898680890133498239031494299365070908900445749279722068883781152049034753997971343391813097507975399560654197374779704193083637085453694014547956060112235847160297054016460936333968144390636229844686101816528877804657112086671609711441921040076427564349126082492260439718923301012610472780273783312685015949597255966221117728612902823370171698009023899923267612222026944724837921826427436852044333893731220045802171013848472953648823176271970954995951558215962338872257152763189305723112462577332111498679948406233166066621880882843999999286109960598603983810597529497285018401594907792687177255470203526730235930725402397366710543265198176505529124045080884736901972904579978221035207653284069986719670067361478625757631363808421389046849982262834535798500087061552055867553209186717237100509974123891555724947304951020812741118960714109168966417313498029021717454580187424104661413868103692339194504982557407339056326549512860260897360520133747249445216813521138475044987670356396327858349603405317742253063070412734449454151558193760869528391155767648682749167973973839813839108216173801406970627491375664691969792670708123641299637404036263168914477140540408939333824803050446045896508455559927285422183930446928935405909842404002993075986316226030907650575952477683656395099565433367694113329918263025384902242567467583660472666828652237549325392655112432342001671788345387774949427173656812223432465510326256047188453299846253408053284319998105823194861920429099898199622403045612285691081825215482118452440240804662016483348096071692578536663891556082930029247202253287485975729987450734712340527155068801906694463720489500304713887473228342870415966119569190222728518178669723683227263217243494801701143049815444239116931847485967356083143183096139774461993695477002513589296745263455791069143049220934622752506928594735501349628363788971898305569618932543145622015751975404065481863490466822061795307687259401328824773836836067861890505804439508813149538473956053041314663726311062705751946193259160943293359612025031631597778295932892980296360713528871964437204996165301280567693769187147566003219422529364948528729236956573387392065276737969279373621069438937004175316976923593572611580204065400030647176966793831589907719138694277340949936822729841943927414466352305170537489993831183574117898699368648800382543879365892074149583725121779499584834726198161020174124511627027455662899892879701016270391089440631079971337141803420466667685615960877743784963219418007732013450663462985330659347375859487291714444307668285650239730129357431094916044203210847055827482340049632038240188349630184082745631216917272908506914456774465205870393130612921621958909810452877824092092483765103429462060188639879687621795501400854229739911415839094416248709628844625561146082200472406247752281293084236402934415175199622759467262092570712220647767032271393867577148545456386273144946170782708558634375184521021903784506351945275478559819833265048982515221977898002042456585594142945838763619050647104183199726993344065690128276140707086066964281144158697635754026413596802754826855111762058219387954414780731947510274707231742306800764959649309922255476897096753414694032982497218830613668506480474179143010133025285266281948910053418920849974163016918026058778096955696445287765177562236825796039176501722391116719839561248939836116652883844029400317622512876167774166143352614191763064354099345426972410949540725481960249690907198358708151140777206153613181162601148306141240425813577529208096305798895434609649683066440718562060375637472876921637825966420978980304381236512040277175296353057135171561727001072184294571349696397377759551222440217784708351166971097210860641343282035904823797406918364786982286487609491307981384891814175167066887018135087468065207742723118023009448888128763073394893796274350435806933464431791785936916573027909682652093314657289964867753753849960130645968175702497682458458737133543542547938279624842686663755519351170091640177095147898961922110670167846976916501789695150957356861996252126837331146371193522906111707379139564528508354115789369869883343329177072907972058006559874558279548386536266868833225852329477105466332930657463534834998141245198904291410442205089114968800240261534833167495300259029239275597352307437208544208677075445886275802204872473589005540339238995638247164398240156723464734539394891919247204846004164694331257963994786962975897218132773011756050662679829796388588429021448185327765724436329511757016808239118227019566777985577623053903803623568463560487917384548036074077924675034179788757941037383956857140881629543209537517124714442132061898391984534635649996512284768398336241673635550775476744959325932682362843463397258621838264043185896753991891456457347074337755171407475325622627651802798910775815383128171922902781434522115729278887474256052258309396284382930899384279622584472319320999497941205076757855767271235512425049958374976736926657476858294143104079680088169230929923740552958814416279411204061995621471002314256067923194750469610667441472844632409937460514153540945695849301926345579632614967271589171861981987266842447266192360710646573479802396564941309130507723635442542824842670518571384405010133225144146380547512409338784546631681684106549379735734936159634388443477982227282882694768671766782987096180944879133940509665083197466373179284792678768199116465933834960977878626610251382730583329544231075807443519072236659249201836274884453288634455472262411599795317246177095613724271338124164758534757925286245838706978730089768605294635190676442108604055725199815205059017297864814003891934564607605360607285950967941087039365325155976629608216225120038830322588189190960366788257886500933204717659739811908525199649623174377728365408438544701036088572201859987440003833018591317351547911176044366342421095307906734425530608248334359335856235324663071947284461712832208773910650825404220656345830343123090714988880657910518645776503855293274448783271744937929402407843055124408787931757439038130629407440275695566949869933140059519781493794540182131238169515647351893482272277406200737679798108459398943865010996400884375197342784705615650075956427086672763009071697924902075205262906930557809457505238974665747105661211097085174101665863595419010588767176167480620686489754007882646710323370448378057747544315037867555921950190828264251036313845782671619671432722072956330428515363339837551124073614620078652001695660300808124029909010885438852413016945138146743377119999106594766761825652998557624157565565364829216233992977922544648140347427525092923111459892913304492625973532803811089490929857304222435071478782719074636362683541269995121363870364030454230679830146308453254720854760997767892896743089610667868251494763046103660106588023537138128713710537887320859456764041314891495857044952893490274972030182957456147519385109982563645987782124202364978122769565763473892791818828703155991799496700802549415655492852521601949220565126779277625100420962995248448250296495559159323648165640622127082911314401556257263795683644794094086738411143968233117355058960109420600139682724898345035644621683143445721092922024120751408033863600676359238693656486132724131273528970905799371452765704866732225396222851243693576011980135509272040358311143708870039726435706623859209359610198015492070601167243460748862982669022225666772811947578137840980707721877597525834370262525779542597748808415678409654619778942900595627444810684650298283511390792602563225198923228971519886365909211279200078249411289912355544082740326110034088965905390251999606473763957963741256936963726331428909619039404435361207983131629975807341897711848534093894120925747990144737003199034021363968676315990239026282508281538466033313223233807845182380100942276074843599025747458505040578883908730423051231905076461501187397750577834061069154050648688347929872254550257554173939162997320270730652814138231840006820769435920624549183723288014812596041323507802088216088702667814602280540123501501449466180556466102153747830559931966355978216727439622585538631980158507438968108825887432523593512931345999829983650769501515640321540016694753093213331346012017356077950116508490260555142918142949137606541425642465490755221413958681873672587525938218244891892502023416350687845868452364232428877916858662149654406501382007116956252134491119670293906819763900140765159964591347330132561702422833459280145558318601506096219815432083140449494446843369766097451109852326703087222214540800465380754112063646017455728792887671062501170255241350856413661005599143071486326993018869558513738275796798352761309697756173428863708011718186242597554330549295042332188872846723207242563870178879059031123282264249248202122231580560299080416527653683838222395132524263697774882501958605055087483656713154779048092620447960558949292482724017197495776019267010777922141828059615716692640496918275431440683831874325385667989156840074521206231653064936128611741551198065034269046442245240574129577352310352136263086086391986937576640734119898535875995146340973954153298389219307182804550463433339921486829396312904584821132109374565661971503756918350700102207069144769960160731979458308643046762909341226792086599940703095120883237785726329060052499676296555922682684160797401725531389450525708601430425756500622197093983270996600434974336886963759035233160970029982076011853681457867868396803170478968096129367941613663565460556939304226730424341709036037189165251018579346280892058357157077329417836849245480008335116995662081488674394710231557301030610321080882554666866105144415935846993388119344600204049134901187452986355314590509064670303546099225640018744395289692495017599026051747988631242594277971705458039986061828263777602994985530250294021560214240223160141693765971591485612476082620883108228680518196636482341941885934516577398053778659009665384002434380584235004160781347486210852321876181924264251111304889035812753765075936776707944541088128715046147009995811201137178624962091642609934974736015362948513541495666757471051926414055355082870886934540238718247261813870942271827630966489389735804296461061122163864650021661064817259484995116599936676409948611589552576336021881599258637698287009017467566293045018079161716923828803011640808239820236903644171661052304359705930295309078243265834158212123769860377023752604657177354726259299755988458758219504671547909992653071610386204584626113069394062836914021285986139719729374432819710129508146006280584249561188399791452027689432797466118126846773894196989712053673394797683096417782727021390694640088424571196214716851347760980012403144140567193051608444325028055768434514918269085469158895038819814912914365328703220422064112534150755310056134816689002009352127509004278584100792397159077755461736236134613019855500341130323768916948090178834333957682885742582888539102847228389007472702249256257062617266277826754212393714706359040792361937456581218476794455650114665384952291942872106039583442807386340214886008410960620095633590212117276130800013455012374700043229290153434739944622529109362611556902500533439342950866324292794715739864543879851807095961116887275622008566220761135961295758056146509117227856311724720539078366510292479124907988318523157987814589804545502339374614633146890703010991617788803734843687684420510993387438741446035562226123336843470319346921104236049851323684106429231054999228611603471726383671218977102964191001124006014777641773618876186975826280709726338139668632674286494594222531114215209274819585827535586839477696025914218618164682575602500500049962036451347926616999489311071799512214944968887752913661086875866982655757601117513331497084173758841038432290423123672186061123729896468935116452889018555623786499426667386762835381873050601990983580724829299870857741632942757840769499475039868292944535841304875247170158031698263928513778831409691964274867590999295829903526399645481709792544165841825407323897834629381816835724570622613118830129556824827817166624110828503493653110555677497012129344006623107785891828135928828171331625142185056987080691072673828427203086175379274218886901844459670765976989075097295299496626155164908499476263666756264318382508181785019888590396201324957197848140517922978067794203092755902536004696436031008261608173580742073503247252454618779464852466973041840408453204252363404178751668306999895461757817321643313668928032072468849029881813850905702417361597025354328666104355962790261508679872754471805431390170223193127942029805224140524347006908647920791935466000936830395768554820067554588475796354397690259300865015689248484567707063589214863364480577049019430611888451006831685499934430484988470535390672778092935345659577970368113965191463188883297927125880407034783028884398613299100448306245252108155597589139758667816637212892510749298992802248911670980596572460356626116397900613699429485621071705031744955816335906000205429136486441857088743496089512515589085708533765515523231614272217363141308381713430486384935078553714151958604785107453310611062338528791331383848272441227580529379718318400625732475080073235784663070778811363995573482610223242383230595979646903146034633984103014947797442378183145442068141694182083472576137775791462894412705298891226139790496869237812670058729402928813894238965772536888236563374273096934543789324912538834664717102294703039365882917228422132984058923343949877598319059045943120092046133200569802674890172278469813796010355738244814765787244911944106429778670459252681340733615596550681466234036242539715649090213313125753462857571118051122370830549294749153413485347254288219723708264624906976915313018502598781639792566609054469920730350690887054911953625054448354576616285804975298920987368051568895202379790141550534101807915091583548505687649196281468876742502986747291034324951151675626754240788334058712964828087006933130507747986606199282775307505606661253675439199823819252218003886541443642203820962204200020022692511851500107159174015781361457017889450600091519097618284522873369520377153213619445138339486947908988209008805689929392860067624978771956063549996114558097407892716605859937279179563000659421484917939558564094388342011475813624422779717303399591400655096970641965648934914449901861378468326062416222637624368316062410786290676899021962833176369307216119210794411823043617875599488879698870446684310815134806021700923145813134088632936645990264703706777481032484078895224895994073787732341438313721718337815533390286341798792328483583299638222030980321803536655553036886716732462281090877399159642051170878900860748916775773686207992003996248107233589783830737786196107448421285517758678632136554529871994197223962544753208253102584582366606972435701058013767737983316247459722911625133317463881056705762308959175284209054317197602521240634094938606350152714904855445760914347096284999282682598645173370010015004699882877341586541866628990295082249697609504301539043549982489761085522974905761931243380941324865600993635568885691568318539257743427827926695578772691417949280119280123164947047878820919502981025360023149977721574254643702756109483347930461597823864265629702769605979592086852292518343956497569679909862388239781010557054352858413304530955099996614617513123012071188025581107995767043895725928478177684412073554906483563504302191152577217241922686161459852876855927025437959541356749749037194011826014631586476041597937525364337306189510476560363981591120263309493299561343277449749525803685622103302732435793888475437603888781541257977408752763605309377690441996569176368225246162312522881390114916368935914950485350929571092541802530591200149091423602060510025733891863974593747975119623987199638932054365865360075969254060671751584407432161255030013423025268446880210575769820641675363980165909600377010800762725634049255541310592450128951674519227200963485585359317733141563046067118549794401066154461929459652742599698884781256657394419215592646625402763169479262843150212641309488721827958089561296223623667175745453174406017736492572829521219660269485000020742730305457455087879815204940307978775777185645573325717833336589676254992165110185365911168996715459397192610298821639453429067162279020504801241601739398199209905879749194221508912000897850185246609675364254407175878753723627298716904533931473476501935520426859097230446577102775440689707908256480400189137915615428318725685120879749530572510064509895597292834400616286204730088350653289264316002918595122808315902574971929914186298479661169740892806517820072188989447891852063279116423499932910667395754418296662479015735907582209251123598394207371333082891346156588004246918479444762152532120019994701015199981221542112732173307872287195243119530287348111881835017228985160852340013615406011945025452761428051808825141782090976361379187792880947707435291420661982810356477077358550568700605262577246752356101467371257711901760931765185659538294739328763188194391611690849288595124525540359310840705763816348954397071790739640442382311759768778231457083319778203444910186843666133060909666233948926920178064305909165580014284072061494100345910686256729154841405168606214806490910525610909058419439829129944566139414090335500251293134760730349164378480750802874647028017604119865769275575289715098260369995201703535759079276096187866710153528716475523591497410208836026455902645424595342572147427087926068465082468164904019071316091341911297220091933663688359900654637243852047697281755508449040261754631002247857538531136329441650333168798736816710763286469554812439420328854144737745694142887954848633137900795644017604185007154440841003524150352051490335331602928786606337741451704865538899216752062488058582270238126631114975985534640390552499080005741696008440196512555665757259860566584297808632693335232649754802553139663660969676140905949999124916238437532604093001948679676979620023815322105122142673268139982266346564393344857631953854649021412908072156989774645170780403388786189034392499787535091845556110876821403312010165895933316844272464417538201655909133654940536708551470351482840469944437806537745193242673681784925334180892827449056386403148533349543376411870123097867372430887355223120527354618091778594064203042775556836258623046662969170693232208017913156633194328499244776447081428678034685452554745706075813236024827635617002426348641761311509019031240488523029196912238021988234247334100053457255150425764899798330715306252310430397507971832915655649389689744694038864775595557462149131293492208645721368140795069540680083745005490366297200691725305526178228901807093803600073015812117141705153629029940417119069599856248246310096853755630429064807200867312378195489461573907216111100894643352950381357284374155579018382874920338221310359440518402437320348698572406927037343371193745014097338624728039408023401116262483292231491152825903004689910199465777942646377118280887463504094371173565522814997064077742823173700613439823042482609529816730847344351537007674797637153891402978815141189550830360004849615428868754209172094112080143093834808974037298121573000250909391490938535592062811260722788922222217714214705385855033009156474409767579037629830438255560054375618081616713329070988603163708436747031295853850579273902250246868962652089679705670347524500754812050552990799795506853350863800643854094787291453799222634823861512440371438949354802488573265794796790501964104430912058155279635416430818357968035587061480334942226414143131428203740286050135207263888437927502861827830100402448496684665897959748942215670890416374667978369041747475917105912360441222576252980296344357015863119060586953106228884566321559128496538608541396801464279154319112111290864164964481145090886937087597634648274129921593734969630480525977317620817405360137735699301410591351616319081482227211201386445193491664670292364627384359201578810536348108550884963322507385519129172248489689887360006107685752751740122645668832468473077329899988929041940754555901656060748199730792463327800808468607661412649669554583962540733898921646664903710098214967266536956112980299853860523452375574175069358469035252202249737881749486908371792453143365359941137207298265964645729536871618957900017090806763673027718324217326110069132891464464207841661328326282157846915078784533389086104605341976082582092316211055857330087100466221632058960719300257385672513327711717574143114836349262112092908978605479013984566375769163094957075147422542016728930457772938449436764054079178625405272064997420071612396464889040548340844037963838740277509171289920796349255571584479139637575539743350581045262909719739328459696404277168099463448317683263919385392827140091568957822677801983399668806456607415699247920597316417934049651053883139212636191383205576554568126551169552016211027357150636107517267151867679660530638815815085847347000861939915623580954854417867004677640230524390313080012732264464065160621378979437796317753570400085584611720945785446767346454989089536937053771665588875974158723675271115145350947312190015770543772831847945353891882177687751020712795820363901853549603898909052679306822993245435075196109612980608744546804475698921906285364236048329015834952673850641157952180870002120232971742622402470261603269990326867877099095273123774566458111824107949239332935149377768540940533249172180204957488154906540908096948051130282981167208434118412347482494312864294992735058897517838645817183284586850865852941619181661290643697652138341092375856758065335799588164079578681361885141382395311752340185680709486777487043287180264248295391117690307021120676226773747069039682283637912389952952805522600150205687520173507749059721206416422819606052196905437262752897756891939267188368290763124986623874560783683081428097940204170018662965784429040682474807709716035624314653027846686471703990216908299895029262501166255918502586006477252395873007239012888303587216958469564404731845654058246039217319888814182831202493229692978208560692374195768927004904440135993289358046306993928644645231878766647798436957960250269657592354825187711405626763185774383441038599531885897274145406188625336744109741660393297027220952071292304188432362744315809597754314505969846955981286821130610079954899794616187168991347959954684537578943608409204693179684936365863185221676891008587248533634006512106098918797557848876660834425431866169935276197064353542355184348200315484339176201479799182496415618797064769097472789046675923307681434119498192740176237074724199530296633940612369289722609848294211262012535350022100737906759400807889899245365626269657833780307053108074989449378584562271397281462589222388663712327013748305110505650615559025413873164619361845097026420524030868909450107917141042036061718626562706042251281693356985886000635257720071107297662650520708887592683509902093955912928579532875836907795867167762851395836355843099387071464120178832101348366878947195661688421478714425665625956661510187274445468663498019059317054102265761584813251908443444644318513088850991481189213927954927751505513712225127066461923760553381819571062358064954488127834228910481872342327673923182430900497962554335692871958917072585184957732625264349860811986118409717066196396245525948042668465262286708549748813487987143689404594720557805221728833141206273108846360821314253506328660606615439579438753440493475118083860249595147794339024330958870175990796712502957889452435705369159348231961860127317669534861132797099369685877375898342707610778136653525587184711416748440362467107701271467378359108634515472582947643170956515817563454719585845084687689675819878460584380667269521018970422606878613876097286684641884568517549070087058773463353763126165553795209024235608270347638353209226168700531604812518592120483905308357688662275954431248378833156305394558874648869018293044640337050679898809418379530625480941305850730322234409826413586835860397749566735714614518283521015037169439655306676972559469963564974342767585361319032784800607281739220601441476246191118243257880362208776797147608404282936890187321531662072352690098316282335431567256039459738899854493619968243632957221752496825861199755553590673867796301752307928335394074147478726170095148500831014142525287009795076473624577771494289588398313823734296652191849504452834384963845855436342034133142355356996000649266108618408891840394622430531746762736093004614175519023751694690541271723233531672539360428790571804992075189646916483845445921810154768532294151785632106961326985662024970002609644193721036653848365431459022391146761661321821656583900727484420234878555382803235060645523271717711263029240338875290319578095327329445423098569860170745386949233015005991782240827944225986041815077054131383377919597394822394004174239603090428326093925436851896059613685186300935403534198400852610756084963766621246464006041573953849731773781400421482975936593701798961950856174837522383830329013911157619519182308823019614461529205725737566762278450566726409598586263185957142350597467380156425087578468262511948439918128347317440225516106439140405125120008618810800100729433609576105542399994803822082322526009008152155025756637878498968363336792461997780117529118771240258319001272882054625763701403091136952320111413521928310671512912573322388167217521377913084557850052510151845484577432455737178420905291557509941620221194687185547058924399884128254223624575870465865754014490947549968236615837012677202059276063034305102915308710690749440617147585153218949844181569767188321958902348626659866916491945079452332073099022229203622162484970774334479148569905118756814530919125961929616670393453531367901074378511646148544738873327410065949523374147836872270472383755439586983940204883705317319489233497039479749746741860139233470374603492360715146343245585505118615186068104956517718136653237863671201021360403637978703002174854443655796478820111042679641028834605645868114311783612142575592826049791206779297507741949584864111870133273131893286537856024301503240212445313947944364858449686201467569138801040572602687853134942549544249981380884285257201154848161640092279478976201022364432034493296650121779849491176896466792885800642106790379177940895832345789791016963008834796380239648828209759173636929884496161159693073760557440523763183496661858054465400010378672523884990375412245656175497135248844773648636403740236377032765085596308536411970709686246587198251284960335014540398728401947270949092538481880943807283756923150184822525096754965431872638568041804135254582410737795336523086154364158032041755034778284330130265264166201516636257411839711861637400378928180858099634706535133453980915135671255684958945668122621370789229069403756795232188185412712469603040940037378734757773291770994888368398503088288513923154543650932750825561322623641544710883895615187784088311547401348643121128017047302052607721782573930978369813904104330388832475616282740999478660914902692307052501505307664841379638637718711474294037537922953603503888634695503459013853172619371102705971882613665459595055165364540214897347643683995471313149220418603139126584430793895515806090789915171568188714145088592803693944389972725509751343348226467848065129322254642288733512769289360408184441256903741278831222799962673674862006863323936093820709071077544276422694557364799409651082319645308945917404508602966539408993836174809782106394957558485992434786929739727611202289135715911650032936315679359505518600373856738757103897767043306375464321158183950412296973346337378610700934361645659072507619638141692869364052774352320270795671370140547772466722608744693211436394904710378039972975181159924385286606381500413966835361730480632107611159556578183245494066989081613894871470966811886209917183988251397756127668055494347199660294881260976250412985792085921810190258703382413891284544805380815954483491626056754613879034257297710715301753757365925713023271231295394743272658441841655939489591753905714705834692084965529552807809791503294042553400376334921329455767979669173527263051088896070960599089713475985496380664476622458035195691249837677089359336960168472141688754745637319436238374373099673944935735114663065994421354713439000950853531571747019727284801798298312426387401260318353334454481731360622368264080884560140123698686144006466533039511864839667383804975979927406799754967942395188305376410519219065120776745144381402309005038660429887584009844778701408307846217387360444075866961456320605014029429892698009685877747960392987230847840844473636272251073776070705506826313121846156068798361519361627556854465043756145080258400846634121449249729903245750983871109197263619953005508714836340820303423279190057754838544477000166821528566029221207770599471210067801548079087541559700652962954420338603291309825963545205327791934242022290532666346199995675333496619460039723113165311895804584433236715369584047372229165172998781180386152552742887320411510233395372678310420723220753305975578930053557321973288215027084172346386219298064215099623569524760082079695302476634293704582200741805197972282521216387849239335154706507571241501540276946794999425802089737157321707218201504215011414320911336714546387075531447782854304340262647375986918995819627499194642763794479388389962169132422456418379778558365183948105459374745733704090811118987932008042419549107454615810320999153916843286543571164797681583044540825108597647604390834865641173366642608829965326836151147916528078302374323671038313411562036734215707403642057869980941838793575888131032308665464059544885348917664147973085724679714950586927323185691831183830988038835736732771741991647676665851371065876314534444786816271725451537556276820900666197956140795597089584838893622645995246041768937267581940082271700788921702887247623309530489404501579449141992640842699931365450661381305639595733067586291291001177342084552141164869140250149315078041792636733124918273016912994403720830972577631778241839870984967344744790821757772791086399832673692412320610565388556154156997429983798366776180328530959542501182005572548143453358722527102899089711544225533518700796704789862579126908093441204834646613075803863474764723181767287444244908585302748898850424175467567701801346355094742829226775778970181995221929250876293781919157575771152945298468250748441504487786895425837975967256922679586865225782143694474685801637136241024036063524597444409856969684105137824167677431039620904872814149196219956450317836597756306569872590889534300722821236421645581122468225481963959590334264586117344516338492606906694466814982988878468375236350154696292317713027072249843367866604746173281409371828862166775160715603074565665559382988650767497173264959965706858542703270438652510959226683847666871821916431813212240051799979134858539169524973035151272943867204114124783725848366090611879880738635848393463412617567983607854715595527664052712280834889225402476313132751796824461904454568327385584396891167645077596549667674658166180970532522941257290214490184668375986916863189830330634214809687703175098166806479560486943466657813175775643922652386716683134792964890290617944761153615348680461411304743133670463808252486144497220377595723730247519959554145767406965801579945773082312179226268671528095645665356444436211848748418556977275172669323633476979775220554060892200311175358738104705106410563592115141406740723360035502629455433241147471600712443939816139593233228176229592828617289664742611400555433983652355668961849160442216035087981760154131644724627263503219506905570911983855897194598806582840179108062464488381046020588652082986542816277671511660386961577288244079731529350852349969440825978518657222238117365684730492858657103919653488592707994791579273410468684256241402475899169956649578813554814142016322558553500758264344511390690547210807311308562719272644390073214784446192021660777282089409180335281248636837211297293412359739389642992348314901477999385122513329398204348521581857349237954730827386531917751958710917778978520185785218964476043550001362813211065519898860975379448141666820123865172789499730302108729200618119121028603290542927042364036736364775201805164801127313281949123888249418737763228240234795096221858270814484220182208811752725837079449137617638960995182508185541053865209652555366060453431192527381261067607800489007336012419601860516069780753843703211000394047499812530025817760858152175719775814190907340651247339214426640012325429803423826056812610210281705382070179374043795397375233416366679654332346477113911075737339638695826051038252327822651438249098806218622874527781993876854293570959516924700760347943350225674206405777412771413733857647654875316725803709206272128341488028921931624303133422976432998495815808688938158539594636347668449388244675877045786137648385921363090815928939191232419596697354780293176523224127695529580891171691834904810871937216161838136966579174903008712351556434380161390607322769062895731920770366020839638467355299127293527936887153215802133154737390879460932298029020062120422844147594167297776843590386271108219960232113506874228145206989204358262027347851159386696642449538521952609060003357776821059019216255846264564325341902425630312341589505691593990361866879002468487168409328350297039862314452233939089468967469797823636139418120910142239086517123997608822413703136016525461745200317890607213194761491036584638376505566040632926770104363079335122387032051801845564530818278520045397673809989269411522108511481250116868443296102945154842098493925246653776493532582613973989534620836443180446108441539717405520292168614392100400658993733240297064609475617423888572523635422406522068951200624601888614902630952317125979319230552460071835392309931223684091192638478135563242973360289248549635068873171373688382800423843760160331287534008367257379110124991597140723033096536624441173072629278440937077239475366359912231105746647460503629793516610993929709795375713786875950125358382905704607459917670201846121120704249022333998040886864485477481790717573309031569046602466009941805379601031870822263863365783091955463536541854596854557305800933576114493290308745999502057189701003174540587083286669364825035641956677406815647332109359110249786844373181241348218375692347630745869237186305260912629251507604689024702466566210943024327370130088333144529651953853784759771863990233143985492296918976291439867031666010415780148243195083391040118822619406064609914018280049722676469905084812096823756860424773110954081868969701348855474266776075513762176487601275711679352244238955858157806533377339137632098426300509643968433026280251617380108745286024937593745331462419600487599723821890259859679928676572994813218953910363628985450393202531444453618052928328448625412736733728239576314511820114994157286808621265775897662457661077209939699536356672884818396316089269131892618040008349456530333132121036578444433926099401448505446492545768962294610443433400293360302907847441786564190606436283969964176723373866787468651601847027192615641674005306928616636974341632086573659568767648186034238053937927892463815324602199657530760046358756752163030538329121021876069965073670437958119726277821649917985051599967918625070976993517254086286380829301227079962991442313563114579437350504292090645746796353631281008758972360857439961018049121481590515807701669413309619267711850439912027191729462804929009972109905846605723813448700805860397729861889609920454868913106555678458260348809807416169482865177711778448529912037354906553015646915314722440332435214596281502035126034158549012120544353054803860094253319206912401206116108071825281790725373758193405772883952217346837791482098519871194126783036727180344492186791410179614783254342988485541729857266234614691921719631907328952523927060996693489864872634116847211738543210708541592518746189584388036327147683190761438613018239775769369424325284452505439205109555883103142545537401900477441827470749219088116916849850394487569464934266597462267711941489481140562719080310346234770839066573765383988495874276608474918225254041024838897604751288924832988151188410024972509297514528768545218217292460139333673634868103513893367414614920639614556204722532173192747758580689344203817234202254429424947741354473649785908772125365151006304746210251297804679751601394692843315617691390665753221545508149094260141254465959589922409963783480563155503583632571635735450918743619588318568761687636453871365828721840870871646667824563712092845973579329032318654246861390065854647464410684235870965359364080499841156757922946667052691671777752522369964228722586022033058064625516758636018607144680400153012988448201621618659242733509660185178056217722712262069591687497914725922248962029338229234332796746812978501190313375640497243235182478650436126935078388422418466973074102601783328157203600278290465139949620100007111652801984245780891658071168290793771958479336117517310438590049994877603108329953933552682246904865415877397026176252138595076991295850106202732978090045778670887553475088872012915391305094643815937493393566960155652049637102872414704704450382985947856303540817715472324036949719823044369790120537878019167572314099523609032568653676110514315123367147375968769874240049743377275938823891763566601259044662592017773897216176266590577296243452312664898230495519492128062344542656617792302962770694257841899236498719072696742823656615784378478218415486894708535271245388116240932845116140112705919408695078457163585279468674059390311940999176507040268079684952474076018745739064276394411094769485800788169681743512623289014884651521188664201500068198382909196964790011315843057153118726694558581085043943697371130948011501593573579229310149078046274807621906515119609130024846751645303549577820129926085787431285770675471120577286374027980299643395079425299985685623852208731496021011136955034387341310994842836315915179207161987198742863916616401906846775150726553687634619681490624940864104779087407194717282766780173703690586976710689916968113906453479160244416167977779028056056699093662077366888217528430472252512684569524174584645409767318325779004514521815887630980726826520144405201173746590703194383891202024587380357165483652628427242233534364900117357498606505539037534549299054086401916417958999408146418699757475947428341860701229277577118787486041252501617359556791943029707922339283882522652400038972135410866479948030332054661807202014896191149325194246576383851776873785939971038472915465518196561165805641593233779912297668278144505491927734629066576638052686144201311937159270157280982407759808017365246783262016545341248492070611364218393130639879651408028824323649896835398363428553766641987060183683920178792402807727987357777327276484819248415635506687688842690775865042311795875446744352149334437883266172665904720657039700730465956653936826381194314316903318678100588194380493198439320543957607462740387744775240616061364057971034748446403313861092731136376372683333788673603875153702345322516914805481940615494514982684379690194820256387016490918631458949566064085695176982261002619288350436388290346186138941493150648817563055798550589156549328908745602452870958314976031511404355029209036373051698601680539753374199006745821845394725618533941067841332471222663609708695434819292078785376899465768477264429735010270839862258191948582813268363147600006895176060976602740306946063538816332501527573371372490438095206702860021447862916079593048659266257716706609003505471343956322220615462250864663311130624107875613318490839236676953777527262805805078667631689066087090126567407977666797706680580742344623650788961275818198587608895407101566136826162211408413563262430563393750027922699803428882743916747582502734595244738982649912953041701681704457991669209330048583715980741845782918020793583825865774580086466884269144568932273096428764186460064155071082085383302980409634319426872521307540493301033258085044012980216129832497209469266915126000332860849697184823700389704777159382670222970884849862350195089438960805819247729614710656282666937642879385942855236349790362875662725048809128985263130379585568178808159911597498921443147259293984130178263394440003367572690528938258377185346359798757388531674380013807137609759639325222117441881049196179995581619955110152350141084913256154421527549582771968133452059340303287852321148436482759879234650503353229999921125884370294109119160099865400692920166969049006358288200823893997166867784087256934626055021029924296366929286128877362835932408503236453551576360615139588061828189907867299108196206615216876319628468932542290270277419058710070402923757464843248476966090564410892827101599217504750047637990835188675943818762929364911791370866469511107543477961053597240806568698610605285138843034503339742815490301668994887184285317695270600883828924155466615570021221818344612641660031359425097868670657663205802826984840328366424743178745528624919655883516484849971063595347605795178551446418070177556653047063082952697632384135899545151934401781052385686943423910179732040623172664279967731596675533586626492914367800856817327197201594227930990979089883934241795009960840831072769021770234259516950794706474561939222212810022692343427052639134271943037654013376650049213374394695586512924433405478183783733709334221493778123698701232916314524052344863234783917655051866794524962021041181268935791616231493538168563099667079974888627147546478593764559619729995589998366711733242672522252913122605688339384466203074353274830461249064832476877416412585935977688800551665652540182751353930348649806135669654845772577683036010147870524552908635097765975079206738213304299176061728584830090380282107122893666983965020714167483471080001477482300118392186200999281410133255274792371003272977844507469218869326414201940669849910470701173738154398576140963464659828625971793471857495006530625407912617041122500248962458684620655576824505392067514300847162719046586378721554225859337908780643325345275739774493977458107876399417487132518127448069717140259307426453980645511176776045327978146745716165159608371336762485148844014523193126961472069394711147157978856132253246633558092895445710833189834140154780114404632543988768681919541980663163555364136322481575129223509092738583901948747823107453167005161378150773051016868089555788180525549102945831398923893230124364457335714824141057526053478498382367724109052352148723002126927785512556123010375317189871916398710055512271885121962507340455278625006745372192832265099141892295696058671073510455540379904724043585993033868576507838719987370779938304623658779446272891791201032011042940508051323841294128459375492208557698554011133426487052665640771228785138392579163532631518586367179413127360462829638892839924453473403649466574309343433078470677744892992400620862772798247460166292112992322936892305416552967960340066443712965662332951300459505478168109677777387240638313364173218404770702759210445736474212010895109292173701543270983857497225410358733779925197099051713679934090535562286962976813350832816059045896689996268770523632160367241589157098934870585898748524494507728568887962770779386168753784265379251591923343332145758428417846109315137734534493266227408835621889159470411708459979705615978705662288815707456966457143250407898973712202370664846667780398935894207277225700259272760264081530222582038059383572873677914123237356692248123006242356599598059552865901719517392261472602987735002182117906364710224790632448162916044737992245416032291003868074963588668239574427069763627889193610189709930872646119545478148689174460719200978032226883409033050047275282821043799793751011518265466351509966520110604271986401232926431841590423164722413352108532747355564031674853134138908583378973846645298525158098280644398575565435148225962667912877616620273600575162956572530670986699907701420355083621814787181872958901836624592670160072140447297165066750825967594076175105604722450427913465612372444836160794068303612882106375141001087435238915770795675898315042552678337080688491107465089033510524265931541115860024278533551982031710364321674020879793778476785720567584800955205102641772712664133313506726304466198371251146560602085143303273586091934654125762152461018453360232365606605246832673060535929490526498582755636474501416353678082628933128749598236478209748085085889102195533115263280131209054556271489231931961683821642532915336305649039346986222117113056716987074582187622266820220333604952905285985506907776285056763873061703821894753780618606799177146094653503700722975441150788326272956862455874103465965160077633185022397213435852806936032623808800942916900666433349998576684237198526294149278990926061491514778099227658350788971856489869621243862522042272054329099199972985361384974421083715725859813187903358607130268314959828172760782528089332613445970788235575808885837621969796093560216076891538077595144235860377782765718181861864826819761144903026562108143591634470907560796107891230054003769098311711201270403283433056653428902187143028633779948471640500774893366253914292864474448072431449394194844778340042512464152029986103376347510200374968262341769110271960926237817441791275544404009951819406781004892691631727005271433468658959358117273527148879647857963348698775749757458526495283399883806371730675223380234255118384959626026440310350126205068362026164139297637112859624367788240558934566526557696654823879507812968650545420438205852435099550884914593376763819393766450014121084149174533980268839779167798757077704292926078959986365848661383770557672874483363517197026208700022031032130344232140321384295046210718966935776477703028468145999848708965683503044083843898143356783206654338830331906795628898287994614058569400085735653396030098908762466052301571205333889197037117806950574427981859037158552555825390806988217198273727199145653170701681473167370928881061698857507606209277336099827730224081350667436410479858607199747494124871061185076739006570189004905333288988723899547563506323422085875750014717321023419211693942227832979405465642755632528415133445443911093149868924820371579871574128365513384398867362735091433576795226313174630308596136360895333665924787920260702766261050189348460844700191680398909604077754807248035723193583697306080953416822676176322954942136033142518688267468907850171764364775662340210732883951387618113301013906194501715761697423914043511129156424856584515733044998492832297854346034909780142841647593256895612603144101015491262603040714238944172845721139588025139204712301709138378849836504504582414909405354413912584026563441851392638018356199700637013308848030473524107108209795001512867613483888784755572380800386371317601350094319344977365325161855812458231557775935178993304341957211658909951432810269859633182417208806954475279243751007561822990525725847437281676153485640510099758294226065961970246591717032557526765382079033857157809477639626478702451543971613972118843854171490097002659165127413013562384775058809157885819169383430284068539963434354155951525878960099232868657528237628760151490590679540394428270007185968097289156347893885160921250718869732490978916627204621036853304863658513444081535069750491634326072894453849081797054726080408066964143874426268041787276401529706796397714624269126153189610230409652863333664959628296008165591129979136437756408389101057356042094428283232826959377876434225175450221320929734652560467436200162247660013410278162974621365623748306594395401982966878545542371282757984100487777648989751429955936231072632939796669869467711878337741453218494870977272511610450179738675146086444415683822357031018574810955382450774213633057740131811849817643438630175298329231300941001493704334923834718130373464529722679928959475198901977735171944662888730530087790018876201593441171092509730296309086236267215046710017481046921358690432485029909290936466063114174360018316168377665574649087282253658370927944311403281875674488540749242252589821546801123938241465789189663088970225388512279967293139140061368782088085319719311284875563497598643146272414278743958319727452150304488920436211973120420785115687597534411626404488686778525132889736217777776586330069738472755113159725216172346978191128121810413643541033325465298608552606085216049286011019867634547045109151016022579111860407183724622539756318106338696946415116667303275701603955778610268578611376110623189559400553407567755953607348541532788758052492789591190390683422110820094783172962960224577699638594905327122842470051410171788087894333748449127510268372170954229827208419414118933291068165732346909383432510765979833055637436342475033703350907288129771015218110684447190043159224090910227640228923850904540152189286766405160287933125583596499227754310240089693256451158485327597916343889320973843011852179842531994681253796437366815207492109441116828478516850043163382356556870979937697122882733539282031510939245808814144745051641690467387084519014234316538292485551552038449382795796624963550362060127769710881000511719700667002871449871729967765538456726211047953593482480553220832917329842889747730929379902250545195642970398974279723927093319420341549996462194139697075540617214954232758089023073578522133277085267346439915454590575093280175576874180016631361680338589089859185362979138902860645217515966744202414759513558205437498876106229651226350123273446261622434510371273622876800164881481826392359630282788903077598230627517599348180736374860696724569285579997010257257714783916725326667187011493173633451624710220330621493404876388810670089922681202760402747784967834647990353555388012031069016426862288010739762856132718121871809030959469485214477326150247259779004012342952778385045361542110730187376094793125073328397182253533935047436162481463208937520191989254010735393340210689723207357459345756750235080532037876098037491741216137576516924123406477552144278644696154355532373325489117870575427905862743959425674082200735158130397847423998703213728808869863020023041192442113265502301174258448741132864773564774346954598874969690314702559279852971466190700592045684440870535340971869901436575917142660980029580843729690490299252622238197049023062165197118776522608191475659349653457405478992371715763845215949429157142060554748053969256336270655164291515068815318735483588236520570724698836012868231443373610810855556537065551123114304130523802167574656199638543840443912789110377198642904952281134926617425342634153937597304560147185634069566857359111528829976245594343550861488385759794717545445932939024882306464966088806125549803919112243652820027703708096102758227011942442164087354130106712076605335756084143538204269138415149878803387165563543881762808107385322953911119443152875476358813411480303050788178018041430653769133912331819234928215783905092958618941654420077776502777007784960840927240305364893897673561458263819021248862139259121468723275228852459841619482420779144217694576434583385634781537626659759432324265982915185948830614414175490162584081736612150669515064013606290582752817672758013579144193101304593898138801921258040739652554074075965689759209690074001556629163143157123494989043846213561142166857573476291490647532076491196515260042472461555582094927513014408410080418090309888279447359242287704114089429840725112770345127303695767716869865466841603053336467271353979281544061838912669263516963544495637134749379823722299780189352504095108741126411538691229095102182550007472236178050088988887689856102023073721904623664491563044339659415141282998142287221640743141144914898332030493860885760746282610730388296114235433505350527059437394568406358629506364349441368994240157684362735019706419638520444383975078086820567202939890103740529556081711511389014470600896623268167849072459687925094826691537922294944216046384808943199107087104910000850214877590822630819448198543636358996467820074470895907080610728389691128373429318104876512927831631057552818262799060867808473767554303059482959309688670080390017960326314369225020861156705382291006744119919817663828372314609976731961964782387127920068099735788615087589435990032865356573382616962539746913068961005758365594224425460470002149884236281411393568945101010484916127251700238897461677981119266869497168777632357688782957320498614058206709057590320964513156746625691378133783264723187132581817099339709912994352169490865112883484502091815611056849020680903162998220434731588079053589016748782287490847105001678076545599118708742024958001422285103544907370814182387129224557993382920190230068554339989205442458438599708387009178927866758361701773306661883297583595526399766114674908141348091318643214359725322980014237103161966888913723311493832939838581549361815327339578766269611896807158700127659748162022879161645589349712163141514727270753737067116542363841982427463155517616185709322761788529217906504684244426722877238811939652288540188602371652824734808931518643841098804784089042103690784513532349350322865081596221480593989612781366693216481974765624911382637042328591290065910810005839240118370754617067416376556290407051016597397896984699369695309210229364520052097187669251311795606920329616399153910264559802817274468179021430775887894368477315122820815208425644149750798049178081803057104532525456558445330536297809508963148505975690217021449778693016990062739180317854772765185379718806945569875124130713040657575368606543723115014902389565379698353457850781518186009491284355225106682310227453035915896303495654262315303990319783461055327550117847699839857303167550652384640381567359924949548819392030368576434289305587870948356679098467690130800448284008925723354234463549271733320868694322400198367969968714470082142460473733104619142293140292084019486441750633814846722965141410405511025142246175650044283758965166463531364882283297409515878710172296355554210020098927797645144553639984835225572339543061570146251916313111089835449516348433972019809735675747915897300203531196709180688624995553232085988772212350507711444604232632226248085921731019756601813261919555544340407431702507653968017640739974796856525057130299032144711969222221121276559036316632607357156261677918177255240715489827309688006815911820805776957156048942296438508394788498754086789530774963338738084996886577834240638124737708413611397215205842962607189321838293678288838733333658027137646411463103338087008158461200534776120758845433505531771131410100968126873396424825825377437442732546525286108153200460979039783093191681667241649617040266746936994846866320450755976820246578264289552762508091702684336230616331005418889153450913527142037933414636840949308413313336329502926557338679204729219763372432094582094223353077406157297220420294373107522987484019215534291916742842979103853861433765869067396821849785885305247870814444362646554720352008290181255994427347325030006307286415278607265348261501797337756788617499005590340903002270854704610982771677886001835958339879661096063979299260958634176340900826454154405139535759304749964208223331990077307209016129523554232465841825240665467543420086169540091308084395138399943579732485855268164056172760401486787784570015709744430284244724446204680593977052438284748005336789351271867125860202114591112290183334857190336654854116825438723337745503885932625529931251503765971156722682252862454395585195121409705560113976842663345574630862915839790847917882964034150913697216251619734444140711244578674176966459763727975833823219006083271008808543412764106294166487273832385436658340286376692010729730012854664436901756300040448996020022412186310196882913327310416012114037881306083947251947242069415319637738260774683995175126722572795657967444768458591929441916438339302892099158155130630690516999023584519203656331097056347104249932685098281446840618963458216139481298528313937959663174520255746899998221704524972494798836028237238422838868989375734704358470751594900938694246530095006130451519576264720028428595622402360014067472589838690082742521776721976250493249611924234334414927804331976512238966804516936107641781490635166339144528022265682311116177298000786071066155391519281960665004803943413785572662169804464199702120500435587643419644343699325545377154630184989580195416563781753640820709675964218624770541298601317187183011419548508409470701766404447083375314258684297140297254830858683724254094802489406884795393491959920286527068642392089283041565639631254540610986068249522948355175268946933732825111489566368227295823577972242538259768843821390839316202678197986546759540502433945732772690448246000531269453796748597860029162580162486663339897640276690296199233507277894777215970454380313813104178956760648394864766438514040041250045491949539438993168926026985784143843808427769860296611562315948500094775827365460521970226795501122104765448255538854895434988290806834539846618870158816131522390361007694775207202769837968556631298618071284445917356322431485878791382345511037205038012826922831140486097150589209903877455239297706839399100922931749967411985237679564080288772418161929223823967680352364100317738181760702376268854948326492968144648995523268529320944412851547325825527495209632720349211124385231998992955932030509590171365240570541277527386010275548153158936041288051335825525149471552924142727622865711545439412877218707901328847164933899021375020888268031985116803112619828586526947315784560936211101135490356579120580065523700363876379599439991159605714033805296580757064086485609579252533591040388732065699955837906263404289593650771636059681360799101016102382315996364554831036434869657903607352897864863667668587447635048701626836925166634831945402995742138203789018631617622787773003595864884845450584521016667342495610106344488110889623888049673484810051785055950228591967328673881897564166120990322655619365802031114573693479335114149974871794477414060437627013300359427822500367680461416694950527881003809546297243545597156612186091879284344975026421373020156344623119407173112413173517222988939453575416171434472000928108588712418449648893684596622900864182094239869795903651930357383102900057575763781741138082119996738439415680849174392763594539745378274595323963671721306549120139213807494004048826757851491275063971826301183527747944052211656914213348131128951442547599413170346812532046842848000417945886823676325722203367315826584050442429957116303874659417083091173491154529880990057845063672596938801693773034887003873159772202314011012297482464349269439839086295542749903980272471654817659971583262501257233770401459618553942413341052178518145320748775043491076081812155769676525761324725109242139510290490778621150190383316896936626049065179242702529858972855696161777512668942790283868330896326835149356065547069757694018770724074832419478748874513217478609908308115792176221774188528848087510438859794420482674561040234676704674633750261119742130471325008502464659962299076932908586835966584235446832793152669460678353472527523639589402257430023076147686990421796512251137528811483309690194665183563562343438989864989059062906592452154391793029280242068984089841210602569354530359122640413105913884156473810728787605649719959753752676281747973817337725242401206717998937654588610910515954527193246442733982933612046731235936452623851986969024568044958288146985614286790380749515838077482322110347555396793061159053612424144002445819307208679950223730275450886719966037257423414929459764305192516247882725737090973649735038054223870277556032720942340088871777327757433080903147656122021719618286686586277104292897327089850630836403680298974229308466841707495233974519999837632948651380871416796028478476903439696564866800445504296405558796003984542588240660904391743038744885257624879610758645907363997073647817620255906848693611068981422354591398033908898640557713486929647472614154118227000701287639327113261236591546344602627245451463263347661141662920453903909487935434623676142764732058412920182133991663709055216229455998471735919070824934836943807563552563656095064863336466182407272012002714073912456471588534934765986334499782582855424913739118049128862322637520727847928127996194506279424675668161191911538986219844890276097231362440173461337419719520043766283284309948698706412713368019668405381145793118165064322715354118478796193147776104336242857590347997492964505530662731229148155716089010493611259448628451336758701896542552134747360051143123331687478895342442071848429316503821357543896908867740853211630044427280720724687744351798322156428059982809608593731065035507092842440947893511093318420391070015000119806062123775251219855514169961886436810193719940503742991058441211353405115787615919185851697679740716128491560184739404954966482472404393206286790568832876197498820233874863102515002024045114416335652876777702894458747291324021447107902826541857577169289337679101439966649486039355351807312546592003810937148667298243397445355798750640811098648168117435803519787103124701616544393566030968462395709524562077033819550364251782129580612054087554875503606940167785571258523812753243042081736753222661830695742104138964085269468631181373895049927291326740887538434770587374222136753476053076824837337750522526317652756730457593236485240658605801256343598589251402724158012685921615071061434513435472650291524869745603580831110335705847955985165756802584500662461207180059812572436054001138260273695214106636188556610266297053836451983387173923202013701297373594301101945835154927870605292504146848822561019300959766238825770183623265150317992572031745354971844205022526112134410622744505029696471420733070123548127956370104107075627558237777906717660712212231317859020758276479605788737663990788953552997109504527999644829043323663117743875850814817175092893593192373847002603628222345892887786203442941417741147684293735836637239980022357468823665985901838456307956858502523678934315671505914839116466935465245409460093654735873812428805939307449540833651751020824084844188321680811449872593875235776236912765152493424670318988847611976859159825196895364205416120578144540672042434527657604158854650695812530720203993603670284087917127334579408737160172643128493559767910354100183799655542181911319639170643022446814528516575799197892054555823212193106026066075061084471223102055261089232273698819937075402170859718696653648310326818899751878800162185702220625090866979634793721331496870275113239836099617228566868020491322444696906091389319741638980482256472372720586296708280857032083857022875217388830710680840714018270600383224314242668278660890407231061605989719269261727442350085563385073017345631992781461524119880582360006752721594729393690171326992497837167434161019549358781615101300782601473071655244215104492839699712194060531082597622404186697876033075633997013274608277019947040176115156573224010475804182838548770911672319078202690314007991104564635834472207226487732796576486591076489349939046090741016349896261130356185171549652788834346815651630111114359155579712304708844863061675926916630164907513982515349421202463297687510759623423496011668115416221813865500689039938538162357532769210533935400422509870015288472967498678855346538521666976112836340215800426482035651062914848803308406305940979115110430083172629707120539687595896322133211711898159992647524234288158599767053456499531240983556485446629989012905417696823955153646218154589535481764249233589186289650763978297890425100246613120750327032235085063780076769657315686585569207450274137007746397150172414145042007185359756290268374573972175520017269127000054765931146160677612248627437222848073195779362357078733295994173104390309029128017150247114733671722094697456976598269062701836832978525984714186226135517241718841815755657872504281493716583043963267555397436438773785231337327387828340575232341758757378465831712177157966185423391001850674619552603405180407926555969160937387890970230086368185837433747485890893817212665081711108925143469727710853268923094672981248268493292561406807135750503995473621291646509214423266962725288608197773045227733596195856452441757192830263514642676321553916785963672808939228935260991736909495714968442721148741285630308870963329607791618284854580309303928198207588646571854970155513572794146265763653839925421167831347702535252216124028406081241520842954146809489278002285288575014128085021027824681244185841984271898840084380493213415646847769763118049307699943745028400985181816287101330958726964505904183636265463526313424893033228534380359858256712247024105110068025991655804361809883052994372199842832189589923575605209273229038116817368167551450825773998706477191745797773224801667439946520979493285400486194426470925449279593874517101336719848776546373442362060669836567620509301105633167275892492929462067698965338551518263693613370160384403788124479403335195045681272094218657215634543811070259701195030904411462872603350484428729230279760947034594232401456894401710940585462703684836426986855554884615213267242145629785412001397424313012071250850150942224368632209331939277653975684127180871277148475429768006286671767421034816144542426273252172533170024415625322538268792921002866572509469499434433536132744834230182930747092978107079405189095699333324544402053521110828787231283046938119625341576096149169891768238132311209460356523193590201091011337594504646122574292100881566855714287248900011972951434268992719496602130575883069652510157221480910482867360277576319490114028129653030045905545139748117420953074046242922100596587088237316940257001637821026413808797797563576160120067466007751327571875853341530667100014180215909198058606847723090682494994302903565595917424303992653469050420934966954472136883381888943059868689362541571016544262171327268403289150454359448414121990809114187057673540010894994525865311552521693728499501453035979846013497849054672095495918681721515949426880978203317000945080226591536517825441785263338929351018245861080920392014088042313597137993595200446043284443683538413046792699435547074164002750288006718711045250785603931885618416659052209667795715641963431468989928144129521218541901757712303690674814093140238999603695495509547605296506793703924140732588863797317060488869105221039885440479501298065754600614516715276533715236431324489555639759901017419360144071465393691387657055879965555795545285230232531246073494232692456591437049553867139345123833044913426164651789638137161849703782405767969322475869200189797312852612795563125665688415730820729121390407761549689586964049614685983384635317245598528667915652747820376712909989668714984609992091801726955483429523990084424877221758528579632596839439768995641910937802878155424607516947640654001245663460026834378908598767832704847215470403417819416499299074428548635631950551775000635543647886633069977618342363894426552088344432693210810169156166153025113344839707781849332045876018115993161678538835806642423162666516992819466834093411563022879438137864452867681762808646261114022184601282191655190910642355829194031683534918652808390632028503898192048683584696863330565521450666171611379937204105329090988932554854725413013551260161204647527190358117066762576780789580811774859029742528498905354148805032214442109627509455391067429983577286275307692860701271918564109914143998132883351043179945587509958387920860449240305127796781754988848838053136624052096533371738737229202762423472505404809648253015529181637862785298195263673361623235484529760185890829830914641255614768882903846515399431610301825605134579888772604390985752181108638694562183233612799921679183802905954865547683653070220466305013198251750175950643036059646857610716937272068761547456725560925282799193057222100986398102105121636181606370497072847137847647937863935952934496730334770655258874886393622767133342982062379156781936991208200819464278017718924805954007634099170647589025735184945772536678175474747425807672949711844993764099572234227009207779149897494802488772645138659343922817677683720021434915509352582641736060353021389302652367523942135986336330925596251799656282648588368146418365225880568613119503484623264195755287481968369333782245310261926352537632093859715073131346627558093617957141500452088086079235258490966343414179502448685429332592890638609209668281313465119430110823247687231556488489995258946605214213565382273982571253006718524970704581152373082164000886217755538959357744115473668330614714087841028739745354341852056457276252641813786560868715092031032686570071463229245222337918840054839677016812127775014645372854693603085372403247701628261316524057220839686813236172471142914804021395611886577700119396894359841857270731337437140864897813750954844301213057142667436490016233886568373977351212612178492973264051591458971720648228597269800950858656293409877460334604310029657244151953647887379147856347621106942078953774119889797601570827639674888369682316055285623193914913479763302149636200254277843481999104278290411780913175915840363074167450319145311884695839916129082660380125979632400133349766905648458423138197612749576635228233994038785236072613592231645691821864221656521474337036951991781884825100387881987941410182692818577806430069467169271313652858724381668945245641616678098297033070272960242313448870509863186467531864352421797797426967124529927449858836436741666267191944862736116982238133567418493816500821340456998277829935830260755315964620906257992683217671923983225720529240512043133667055391353575403563880819246900385435545233480842252391475687238592812494521398593822440475083963925120673685088897900506812148223725003961658368093309492083835224144466828110633199851382176489203246890269460053404007643541615961098612131031464184475497150548042417312982189404727786054854428266645730759060627359591025579632565606353469211879735112154478389436175363098161586570053936016370023655233426913986401442076072955911872308558805003494918624519131001649686781575867833091023259582113916528149291270335997316006352307706767426211058430268713682630139747602021852419840778708040755886311521493348116505980812368686681743267687939398132472147621490457644747658947413844606672040307502836890166811371001439016623176425137406787166868081959318779435474122495011107087758556303072400299521819362658820553310247915961794236583272053350286813395405022303702390743817278294837458776125493262212450265455374608564554901123984023498472822562314186082622585819344557286077587417383088637644953632287364512539475798892037232138942098176676551166655926672944199988739773886320892987591630162780787104194735939145019639250710442202423304879012865349342413024671808536271844735356329079857341640014482715691026504045162112178854986060767027669499018840076783764050978156713228944409584716017864224150280599096814357175891502478428369475362141856523347774144684921163185635754364036862739671662272810769114153276563185271028715088037283916378106808023630437327062702850265365532966537365595011106649887789966708319298208177930022311234044116392441798560473908430140740581912559704788893271120097963673210624837013710681394590015981659845341344221533765105859426015202073364024339645303738316855593250408875890430028251067079863638347668312549931258161665585309397774503477536579338871185402470363299037213424814164129164722963734105954721454256641739045584772303678708055038916074226446732659693214372042363792465477838002370354602303204691437218065174325162144362262084236577012787540734150567401812119194019957818807624207443051351742094796599539938794017023526491053059839911420455141152071000002572637286646896304480473797397740999259801000436227180439172583985382795525693938655022400101976680914268198537373614878109557603202811070387948123016910555316212080944921750289762477928114597944299783184342760863157896315282702551750272423191499394515824741862834979178926830964373933847453800194381309079665964877109993570798064180684579221729652157506579993072804898999277753205288893595215255439805765422645790083723531885841458473312479378609628971138385235620616183107169411391006719750235358555870173863090974663334453284592399970112319302233030350409929366232654991394813197100859929177112488970935678305826676937359479911599266722282886656481847597574766727669638734758400545896365682224410461061975794200326251396384640063115075011902379671398764981045525260558824683182777101908659885556370228312920518585118039477675207705980374463350279493394023580306826766262811983358019651491844705283486109744348672411642394414714315576447351151111885254280108336850500075049299314813794615053342155261284395703952123502435383444968084017109237222811425291576183800753217655059295306262775119233311488462131268061107725088689938062451848641034357395399424918780612511671891374032420547442405379494792127196932814758926420410482786694891006962639200253029338045731310725638882710999900973738377991611356940571122087434771063114098664656508988420016604985200960519993959441153810209128616337179025813904425740100386609861865455686652299614221329610190899008149731487255441624572568919760243081474310268788583734471108150356574483871969393750148697589703165808077304652714523755558898722409167521614465931648191653384873304113156607866478911177325271276099516147298953726363516156792641562599360239398830704100583209090564287244149646589887506029316480887554455780807229147633840914697199883621286189198067168713126590560980786393391658179163844456980754335755775070259944179036347066218896418603954632818120006492921719951038422928259504705018090197074394451742658103100642977841998376070129366734095998078928066193204607955559452615886261700660506106868180596117801893655019519190609410970054826246347406081871504524467909468749478565394402202955570758340951372896980374449906306233035839209139194538700543834732421678131161021134914013097737570418992603171744156561477672152764318938059302478370572712034379769567443334814182593346634232938256167964911885008321474120416900801785459281233445696693255555534500875711730415324803456732129573398701493462676604905988194337358148712800862925412249497029283816910924646884404645655874168577927815223314060766533614523452254562586010651272829677635632178557618069610178478888692995801870173798511445830530159473559640867868184090061275612669250482281251014882264110826236812567620907710576627926122183866650629665550542806896608279584247754812937107778906507664512799925830199047296687523590603303329307089613916866661750722482102422760387663885576594497650035173300854708698816820181216696033392466007319200464534296273519774671365534418531948747365347738831315686700592481021773823026357438357025272230621532524547206942578397343084715564139595169964280605670051065033845443225237707306425770484943127734782252516336306025964632916035569479828003074876471001779393442442116021654066033403175496213103096539546159077971121721283262823786898193417680715831225830678290162039925238273531141628177698896725747952137877420896286574512971392903427614027926850209697922374553629740765585622955103379908867340100523172446575373599324703470758282973836040599513848859572039171786965594693171397546732312554189229064104669482526095085336410235030583713274629953800219663663217684753599387034749226056012694748258665461070173363988042881429355482107213946817942632830607447848107657442426489806390575392714318264927882576444405257470984272911767862861923833874356107280681932824592284988186605541661982219135928524490016518830731996714109002599490248041985386215797767775054979669633083226992840092610046701998031554810921846882980560616345090028294112780683555222455200263957481567371745751098033572955083351109359124598517913520188703117603223957383307307728944233295556540174559890125692589756385737895728977904897988814108328612788601874765597268204550251575952545186053504574507749435964077967480501330458519301484074462889142338048992991982410184044115865549992134971229116835716215296405624736540702450863301360844733073258633883694746248749618752573807732212658804432794940697804372591093352443937054778432511194499375131875777863281164104322335661627072486630066515937026487783772431511587870059622088792098228230959106497828071458923091947291594865260021257996148941060633680372106373824914809994742150845298069805301480698443317407603579863146528482815202118343117576332652476213630229785648665713263764983520248891105270879574602975252200986049442881140385376574977990450836102762783194399333978322379646458717890371684695142418053883935724332564465746818242101192648505317261708300538164512109850672927711679993872349867452429770791550160101639834653435452188274288737154498209160118420236670949075141271582991912108842950511456235260706246491454221559568154690396170291052666200745340798555179116808020037463669533727169836577566142019147894097894179690053303417477910429646851630145384025216044409096824587527247437845690078148047240933673951992175609826997241921476236407251065742154074010155934669301164192288671761198542239339767420685823943568126225125903260348988004718207303179162100531437802782591727077928911869478843837216133834469801116567931628557603499247755850561885243315160394442297405651035212947354839352030131391377990281555295501041909553036170541042420875173819838992268357716330842558590673578573407053003277464874260870252226890201741589392689153575165411021904113034233925832753971812593149668372955120178401743826453327337299112448127065119318912056547732712262833951756892896684681006328114888428180785985098851100303624844792617432530483190537058587692614635054867342787928524516456322943574725603217849237427070264655278868162966951910812441961381844548317253034737866241102525983823253362063380372497274303942038549268434824612252956888126262314068098249879818333164629577138511292455834841997881862991869058020055408260544621925158515872728692023889949995999071082078036428386778155249115528422079901952239145094246277877652054283943950721473660661660426837790541042876779861001326566154166332111240430577588311944722837714312169251539676633369112377336893467954242866234550974587820755536229729389847553712455135554947550359218034756720847259821873234978700641567046536865202499678577489204138075039301596160766404523165746716655187701974006300114776284388796763998287939167769072688955392002301926559568342884515071003648612122374177615914971377321047470424419831650526777091378740657249313334762432514688769957413249657609880827262899453868627803610318323678086620755932576372128211177960708153970283473803209913378545292337471295358026370655290482833125247873853453188454917275252373314231684381303516772842222751302210552911374876999372912033286578230188338677836306476054350110149677042128155039146123864372314679620791212709581545808973356451568042209947174262892042119030376114295954615659232716167724782266964860347543306830312061227169503932829152679785206462836887412834745823178118146951781251943508312581924001896900837520928250236417948952334745765113568590982561807771005836114131372287372815354505421724912850121317649705396183862262338473996846082697831363180446842123163144501860103966378153812652668719641797116411635898407423950927346668142563059772140307479080758020734490384454083755741395571830822968436929050703766701681948947304966564971323100182571141588186376042665539791280566362117551517919657217092450487736450803879289907813164519565196710440496231006361102358932787496156970788403981416104410292150408536147473310283275156099983434333869625432861727633440272351110447596449720175841676480977132131506926464001425283950743660378866213088980785335958173146000312013091024567648741416063796225813195050279105912720184689028459381251806125643861015617487374205065384809302321446445610039048441271295521408845708327990071271040027904192174661835369576742977659522156836812135591375725626139226032585151763776825020186241270814995960649204447006074976705880741229132789511705335783882964797310165056117163168955734865185494132150045258800932409818287649917578712437603826335147247341666631662469979114730472330719581560646586222341656809623128727460244260989432366351705980208377636164818592896313912629895632682109940126024529662054799833854866479570547385488427814930107022681066386078608454326837318785904617992069115867120002343048570638779698401177324774989931792735224679051374779768369412594624449516816042605066333153700064082818402515977316510578254464503023993154000094405283433631733901774802798745799606743035904923666527249421647714088281628739541295703524211638951503673335695453692189800494403632818083508060078638884366209303358086128187034317383712829608557696456306705125128017786028286462954394977422697196103626072202806692523318249169681260338848300170914393853873128069803237711623263757526071567161710583614697088840874241698179360099229702442987550227101703398446767091132731076654435701732963273758850112119314974236549467428759896993298414063143525807937116539329351494910744580678284590303402660521774476747320348635558084075440548499564185425604557821881301111714939746879617518295087800482448833604707640230014169900301219665595420235210392647448599364930451638287547539515316830056234248719049635642546566311817267974338427876614906981740387511033494347907685918628690151873241258797130392405957757075122727362176943653050145054824285530423265313634856021091368541409853847263008367461975613183543241087895362284071714399941191485496551851966227242352092004856841581290922934306460464978916657910754086003875330799847836286814077097926884055165285160665086098212165793848392211576498586491173634119017866044325206650007405112757011059469059214567793973563957356435984742804015722966811584399838594377009879037797335121494976705174467822656538825503522863788010870621073116603435131989456524222179825547253310553814846023392283595677116539716208456741878819994317683655062112972527505821903630454487022627897348870941323263743173935396053945734495750547403100738519557119495055899555127769154715831020920288714188393877893421033926480718707353230221604642841051425257352869400463851117601783950292287311517855379732267601712179809764187722297137629262289695207554116751701172959485734189396004840182077078011134816114441880443225553079385312383620629905480528031449171474038791338845405296208668200850339396430028856983310905846782281282323736184147823263586130223318162191116009509545786956902363981387923732759962128758579847209508679031969569947668278815271701108591463367570315227386238758887156953858013598504803615197792848237492592372213864474099633714162656123586547311675796375582671093433936598369474704999571976100104289265941867277265731303390050770418667888739205733121299708860254173902398489787829286816126008234166127585110244840494635718489519165803960475252138594470253516462058433601798987955803967351275904926993959730180147873177552190741468802464589748296141653201911330137682045568303383836847147532074403614501668592650734062054946370896411502362881788118847105665701995093297782993374467226622624472735131552769027847275862956715400820900925877988829291350683740131408231134483438962459904601391773576087461813618775544490936147753378194962841512209059213963113328945490946943845869618895158992669366060542508146679468166581881720223915503408198246643759874949219967883165787857943401350739279167049276664012775464177860278732242238477812137423220025646786204136051536253439744905847018192659362759578588747194169795617330468498781087816958973992430674473262987625293013363160457700989486294976879212053536218076084945931797679272099146143050186545873432515676632767457289664275112749552731747710094499777937145670136591901935926281619140689825243606441570749443747524446959892523459432338091536300627665103282734975435689037739288484717174116240640812022533826941690978850239281841917094679755118704788250272139137023520962691369969525979729563443313648806359869199873130087094932156866822792307945942718720767347327460331289627586782830190574965791638427897242669363138164162666776578488488602853151770593802135323093700480364920906279893776860658366666915548941723171085860664768513739722740168810389052230113002524341025710302424144333223664830519561954351920462501066498959300579683874002544982830102063382223959045615836922951779015902255625213594737479773176198078088205013215065391291875455582718767036020823722345585105320712455606379759216818911740437211833954239683963632304617938089728793389397502134155665054620454624532760566772635818081448868073568574939635680333632841662172264968411340205537015435565168866851694132639364499539279887937006109647213142193122492051370945875691783730828972240601475684124950997828127966826366094592409104556194076727021814414283604313924755830977796776552211669447264494904017374331741730566090112007185354477173659764052924975616944695834759936448491359511545129714249647689581661701376466646279957585080804204151590818015333041445499597026360209552353282325917526012071293841591169295581883410652746044171964834490059132481371172589082769337865311898010436952364182747877996106298826732026662077053174180478796795093028680311755946235695141041987544389867285621262388106027393082838266107134020500311063364063781882940666163270651789789936797806584542210530791226569736322524701850885938735993052326097150753966996888813375705704282249676747958953877176948721966762157262804735505423160396923652304213994547262549591631665307692200179480259249213469511074480800646443808827922459783759841996563762083731871906441983256035957127501896429948269410998283516933525875441374081276959464003108860038446976828967905991159231618818229677190609587988869938476029993681202414062844983523282094711708753099885484058358894350606736176563601375648145497149279369393906674635048127781582602142428532268968933420848759579658114962997899491396511504377095963011191786849595400151459405124381170404077253846728263136299673484939817846064529646374100642129509691880911060023522187229863604932763457209288206949768147188804971794106480003571642810092251508696807467497783592649001324006204031159690209798706231627633928061035502674050077817457850840905022261700454336326659718079890639574074987594322768901215835292123488623546813712014511997172005469110115653150953154462377425553418884272697077720148815293488460636531151846424528901320996925800497701622335421092279529923442218595493564067292281889734687416394734529143008999378080654814389387854762268925881367237829269491446099454521536817788332798065061307370974580341992503454702733481784386002531993508256273135684278966372089102966746495357882977801317317882620474246770274581529457313816765500668397992188746753437022534159457526406557256339000089162491853363950302160697816803705692277389010489236208709334784410846182792387149067281566510866976732869294342771935320086976289776204866915507036458491827744120062908702041648389608056531528810636722843489771819790383714332934629476455573798389624194774068379834241292930508082095396860812249787216712523162622231717600795441658637728884966810524327578370949247491152081102801964811238000182520263242765431707946851208888054439592786678897171678790100923215772610992928025918760929282087075074717716671372550013553577014208801606359458651703537576480224105488932010412542329346299616642947873692987870867844874865291600237929174996283204496989695683055128390921015852305517990196116564253107665850642742691074205663188649780125827163374211787720229016312890378953584835837119252331834428052655668379114886253762954520541452852308183985958102476224726248627840310604307140208787656570620875493675349834415697027619148983026400321629007304739387518786537673287851715004529195181787931627526388115731494778875445104434776979732420559509369120030232259953611178530979865531807805879753472952960290504355964810728680738688425146218598635924576781709013433922570403036827326923712542925275115030999487457435805831334533843069350673144560321570806263071176499518761183267592719909366834682466145701620989749030371696624756979618827983351943256808207043359474943893698600609402567775709412163894738808187355271877733889833997291621666971809296375839740296468453422654887493899806490185939537518632748050510169049040850819864722349499630068652074688189348821333611143923555159063885034566394277194819343860007465095148195587598959978243869705368657311934540255782640127379804957142578332593357933550899649889122932376716948317355224175684001592721850084115926018963631564683563919854780156627065198475515766114912442384934606977360160128731537965691701822854815304739542355208422428270010934255894588507655424681933419154196735838130029836515796282488041845953144212096667440455184449693231265327541722306692555005804306764248152286474770632563723094083682489637161270059558718542457009495743335962908503780670748260984573131529618709063277659332647733744652344891143272023135381993587965998788573531132285822245244657736286761558318135822266505585318846861570536273644045109073476305821981934891631573193913809663738530312638700991087093332814487069269332787843403604875044589373211069855657781152598586542634938991436928222721373252419015157328658488496075830236117551079890635514443771649217210321054017171300868015672088364395919100471853430860724912021884211841179542607842298231618695796868565724458739836638862357153864081595192732919500442485040778940778418107369682451637613432377542953971122911605829472271763269162149412554769790108463811707585482176819520712694901318812530559978803985057620061969995215123561003185059132701873995436200224090249644362944514753701065193708463073801682253680574221970790838684329764444400594251853381580904995516238891888458554240952654225712677988853137307895035588008043261165384958178210757385091339808007722737990694495583991889315752865084593852411888027542071249256675899343557334813684747880828918289439251196468290784269463592913108444138825184888019095499501445873677832403881887988744745590321650890320088265306442884972905911385672221650454443569449066977665894971404740300233787796593105327826871763559215286731272546422669311449169464886528269321485419474675721267905664966473570878844707401546047797006321411190757003568173847210557832494733988926581575801746514139650956875709452681636120157150382993377202684794399082162519813475359463239891709717369731004350017265237543139195936106331165807682700328283644244987542946760886790707883981823538720545432471793093580054757759885609712925084130362709501931908177378112416653655026972761431960995027867408631134681714445897917350774647964159277181065637203817083606618601018906316079756751241794601823885440211675869455693094672244062838422584778098661978243827925747995906701838588506326836214544875165549802488436910279649673002126223467352756520044090388629259743599299794293168163541642001151798764956406368072180868454637080760797249002284401651182855600470517438068123665829925513024958039760115217090646590484813206127003386602996687853598516456713568263868137763760333300130831915483204829680460344365841217710874086647481892628431335307364966968198640016445273158550443315225590600060732656968242052739894167968402385176877101775222827761273439459983685186514366724204931610383645947276135399079016717741405335868440431150066760104874676909823918167464311028881345224988501493732668353333201887379198581001762101814014062927892807613259757582805842230555265196280730183175335515599619644812047361039238784394713626361436946658198901081310778085692632850186711060180541744596175776155901709561374419064969428883187547621432857925175858758377911265247601547987096005480723773337210043406235590370372693087004122087363703524137411200272528023596363787893604419057581675777574945932987826974784941056777814558181128014712439205151001402040801993576852171366352666424152339411466411554089167943259924567704407174715226407410439774771585914350815534223825762419891227183127257499537198707806614030858674128774540517066905638741807831301908916739339696192155807791559443570328915675797543217016469556279025590382697412752742163927424782047167144494416974923331509888326001936230714608462736821246595094902562157865439801135388442674820097471761478863509695185097079261287816813421457829839177673662378731830052264665847426903455072124653847828458765735447012355003864764211884964479649927960305634710119009157899345953528393495285681186026733860649908276189360448226444416820974303278798972996930909470898875031734675975315046921113810355245549296340333678422078695159441777477954634918903629945042526172742615351124572200830530556419177035386970638446073318524371184799354819991638051727078918048802009247718966356757789579192450630977403378811383802474842217613428510619200050601216794048201042519002252936683851930736937730313053807367979138088221707595771252320151914202653945889600035693410054331781886667374613844654863060214848513745404995191401224731217684986345958838121521405228394212768988703608135512128770892301951793957395894133607024020204100997622145628802840703577423278774051574993226410470089872708522539785949012498329689153588136520798037908639813313039257042472603729258202373396987853719246672339240890969450678953110334632490390498425029781807124772061972430909280667944069375775021596638974862508591220425220304186378467292052934825240671253311752160242801531487008658454437054750668867452891481077405534463375609941571885658868982953382854841465487454464194133513556108237810889817082109699778221591778055867909719858390025864104021459848500188758620219748271660449922330096630751251038773676265158852115821869813642836562796484556250697002583680371123221263763358397706869820332109617173599544688182085969300642733618280849622931783561152499244629653227304482814885283408585890118192448402225626364962419256372285856050389159556363492853016513661352027986014702300580010165468640858094085304688840232979963556114078069914052580954566501162846826110612494408658534449125915780707547862572590276983206072589500327409457219650579310885128296718122043446394177133253434492319500131485343923547688807173472291547984227023433908771322195175239040175803793955565216139726146072784859703967018373495211974708647279525711829509768393212550487171208364574315916749044755713373008249358121258557049706935828969109083887097499361111937596890232365151528342747131464659405210332015591922024842285332845944632732928413282858586823038764065665313227583611552455075841233799103768057818419818685979088014057308386595723270238117343158194794090219681536480264669434955388636897495125389570313147819699625470497866915959148727324337300760958727282145160337555794661395261847365420900172600523145549609114683247231627666309818727299510472541754399224301202233318935051696710256971903807373032603894107105489127133163880640972565750796629460789857085488256594655854988322816635239896792472552549348045501305346294633039147408333620082731608874026932840084772850527267281792477351538988476602900598695533969596453572060287877901002268112908554491464940406688748113596959731144648285058925179678612930027260290965305796339657761039650667364769166816480753250472466770304213862314895754268179438004981410678976817614451479831312019984277149540956830219845699930540003882293354423451704132332816771095949461798351427834453976794908412717458707995041766441650539725767687538087948097769377672749836053033851647864006206889790353162584584724213430166563016634201363217418469065361977032146174526150304042506324117383327413814582625611105342924219233919573592246370278322863932365993857914373491484984266026803426845436220256408922793738887268501276818886156553395576837492760954800404722334108253944290631451656521966288189057209039457286192356994493739288900654304569322624243467366475659041150595013040882446286279467126737457985113894696076408009092814522445045690732343301590336913603491585555850698677924978632767038653508413498689175357112713902559631305238957257731648573496621155593252520000026309689008129973908653337911839059386657604359671079091293018473726896482425583197594803480947387455457922147390655599561757855486607451756308793367953622485797212769519194618677894398142593155196934202864044076537685853300385548649098708832831648513095332303590105048849255015651154309758623701402294809921162098588528344790028534994318795043830810498835687579937138985598329976743211375645897601955659764390155177980133833081788208388753487539048684879410382347990661917043362979179927724015962409625846199989287335573691113715780238762287821628827540753624262139915413019091253953417625151941813720223590203689550495076039429006287203856737366512570884952415105214921638588225265988949580789766740791869349066661481668066168320297692486303437961653625196815709150313515752770908645216744375927468151965596407802382169548180383866355734203949787270760005215831105543182864935389798800899941848924221369306421746997617541031821978807817796243388732265540690159042413767119105207929670693626519774884123583915630074688155803846718724720878019311687100433401443917982008576710139115024518564701597850817125925916795910394378571973719826960054991686672435270247039934931662887161991000013112216735325944220752525136045497194658762301044409908196396461438189646120506931881282006033831582944188367678544197216784626594749255945835685943484014740831776126682873225665221314308956623262401230862397977929068356656682706957109577748548529630953923764188747907782841199666019574338922189902131846880849522248072052227205802655769244500151210729210615086183991424922084863897887605383274649469598520267391595480551696922816203251304276741106568618110309870578609121154653755625090208773168715484408978995465156239123788940179852292580317426523928317222302321602302315300900036680724132433351927878327861088644719040785982092824898411155143837623329992787857407270283749890906467753118110774507575808181876191691984995051970813528711198309623331510639566373432128304756132555990989897556776529731089710633896598166101118264928838488886007197015902446653933348464968008467843148377495275130334009959727528360545243874123282366608282540360418840376073324644193867244812680022101337144906639058940287362332065474638115542544185142483060075453875471191450978329728551951885417419018026966086295770987576002921149613987537462194549691670826830913956290003174152157150885404557244001875189601757414944662079295270438305023015498885133569650661930748568800478215602387217528635634703004677612741754052146281915419887470235917453204622398589159625966764404193841448785945677923048974281501759992183979671317973442205723281685548718697526807754758072762782235093488650212493256323427349942604698623410710643871129597920030881310018238670421815173657103259185910164464648988977094246273952871616187284812635813742807012992704808187868675885987797527032921897616885527802467571140343611991590642869315156646634529244683295429037562607867575050277225325797357255128377263323709418357759368714301547284446803657362791659781915980101679538867181169043400128476394218491030601707213798278348500215025634071561639400801324185253043357017862953339188700842579851366462131923947993036289047364875928166023627470861611069549166164238385536112405360186460340789213095187506194659059750216783961912908833791755388288652345093527417655123041861219285849588301220444528381388707549709773619279871587833597328124905207447735359204619400006917636281681897125755222732541395652695092324262812666107772517374789182924763934782306204588980679472480756642853177243735632830647726687915906308043189217881783238114836480933537861684433248130226557589221136217178235207433051105746619587557574700556949147479359241767943604173931056338110357127590348961599089432518426611884433229690949987306838483363261976081245771808982002658349765326054956185238150747641867238574297596801220118303072228101124108347478866959172239184872234423779042270262863118727855466367268714844041600478192554207543724148258482226939466414849645689121851867917422230617452835246022380549659646642431844351692496993938719046761811764164602339660267122728048998385956990612638178411864302991407118382441250021838810668982444880363230193378445775927111158366048708938953340020314661152507254969048703912796009562834267339822723834499111255488320600412532984249072591680793394662190044411571998461883334639282902454753336361822222053761837257524473707405222014281243815420576830023452012100092693416544902015359778491345054754038131870595011979373997087681799366625396554967122051310586784764316005296246085597889339090121835457362189903652858470170668318923840304793499967383016562452835800653342068652324132201007933088895999992589397627911419732219461158102492672375207934513166318592107926009722928744413597802835807028431311948373767906836208239260698449389168975885013162707569139821630676724698411429240292425879185692374113326201074729488031109672315381143840028066672439016824578754366777340685088455830768123131766093229993941568289876320684841108157509911283455322560832457905316486814454629562810088120335094374833286034211312134275039316169170671852436640662730392522505639177697224334283227759280225039384190641914781818332826765002889014943396291374639843893739270740549437048733828158265798328335600147777400581857847372945191578197754521186614461665747364603389065491744143935685839595046871026382626712189172510045861947402830504349737942179157928326397989151260000726019775435005468160652143794727348419632056899769882006078586580113576964206633680370084734195293134935476154284153612561058695465402730269253750913204088521112373370988249974201234306388777133173458163229861670136156402849386488490037982451489792845776178668300437353051851863172302436295256661105222331168391493205715701622043082293887589328775736767832298333680698121689694999832922782182572145262563870809066049635594948369037319317269143509406821080119902135689575805680460098766371275099199246844386378094863382881176836284456540739464118715074229402040785263039233417465769813475045785123421850780007502973538846539489544269745931999660709509288137994084275325607500062017435018900959271364820929461495850237895700390423825415058524389744147036743112645949924864723564243456763608012505218744750553072329417438382164888609935038424382044611831615241035681596209191829222151820808963585396975541035834216635946735061018343519629622347812170761040523080187574736206222485163490128327851687986370178004145470560206974804679422840417458434220075286024304707511281671537045178476681914252636383441367480933879939813441116909948818957383963599035779685795513805266488638567525560534255987599095527803106705958129392242059113715910168506532029007201023242723262450868556349357244704061124671973888560931263917951455510194836254003206881834123938923592381033528316772354339282934367887039647818716601003027964173144649582440263662129427843935727048847134387769161959066977001822685070520156858591970509355312731305751631946725295639058492381498456630435455098272298230821846562811858256494843124820812304248859994142049313120214211171989808260701708988308366847804737608829254328831137418164847683177568195073970803331476476795876471685169120216175139084784884469268625030469301112166922283649151942009944728870380022758624409405625325774609126620910122382034884672059066029255110770205292599176876189552631265615304228625096203995456072162296096148045162267183005660561267395008706539730703964292086898970625101035812890421920725979486413339403125900729077095044331459569468430833593513546918553935926002684987972646491569748339416210084888091498420238993972038913212345460585203765430391574415029330852090925112039966897692132588757863214464082651220697553683360201263096906762239760714629346867436253815009459757257261093106297808864533593309885288985579054546805515289236904679901325950145868143077310819542271119605911258339099732129630347984235109628399765328019641634248066061131094359936044903059323397594366022133779434702490026453241546301711132078502502451201696722276791988095628365348591573931071960479224343130963843337444398376244217136175855324345275576050468879492047938537755344277072660477219314508777828092502385360351266300720866464572994133524255150465062336171677326725681393704411341282504371893120332581429828776049342401209762916009153837080283298396280535059470426025193043957788338937972381997392603376318538620947775021645676627786443407885808106179782886746590839237499308053406917572371819020038914478672368855118987169176139490702641045337245284711084952610546580058210194131207309240437209506439436377951943095788659338318277524888788145294015955901920252451379749071775589172641158618332553560757606604661380217686351805712867829876723313598111030393502473481533661138685183729183228558267722389952254156358733680500961324858674629514673379387783438645006545858921050404779786323466108322175326804559930456354927549361969367574827462165988091702749800751173081394799463088112831561602137936710298207178751328758690176727448535425484300254639929539436830703941631448495975086792649164429122834653421875159691046591767282692720146678124089888233870480419233806529201188467702425057175304885483837103499275452924299715813609177392238066454970761635414814827546253851249146306390627790508987158171306269945632602668188022800574479697280031075496885255107073266681985944834645891148611899378100760732743944897292810615819053618321205819965904064619307840622657048728244493047431506461371264143419477823622820427547987736797126686335012754545969873098534971844695957656056140148893186426497120763907848683845044496508824654615518296118290295097402595683420705027553812522417221016234810140518491346106818245303040664084211234118977077423096928869778303983791596548077292567383926343293935515580168710355280369386106134591565317176419040915167022984062996100050013363834093524587812788155127221609496330671602110132869900712462967388377210841369914578808150678650365653691655377372081298514277890602373942629916204775986222562152092924822142586786317523772629699870988111074696545553784067755053035148583287830559390149882274624818404482629913602796292032189382739150585733069816760014334719501057254741048006576810750974136371262560367499854595730282662236477166562633755194414163253428744465837307193722628428064043489994890794238393797215563769844219177175530893222158535308072635457726300815997386280145609192733959568973345424410038778052421861435818554198544279420319315221923878299426458774790196885555677612709368336082791514188586395063916992887921439461053125919239333151095855612175128884364904746345802009228195320510172139139045677173430807335824718757306947611664096420577973750229221827594555978687424231502818238829927352249386378221512027366842281340259528371800120351630850739102685917290099048148615355437565035307939681929349030433236506365147862343942785921960125655637079111327965784684279972746218309032174577118561992297214596368030390482241366694986011879722026013140268525198996557348239898957634379698817494456668153166780292457712206521647369522170370301724576968633644716637477934524893207378396432522141885527315356366981979166875220767116144391250136333929193464135848499133888957385423235615932431815589935433480346504362150661232963761696896439378572568166322111382448418234192333445725995020144605203954075295288269343965872677805603330776796065008861572959014465866919871210132181843969281934561851845850876161656082804916155013633668385828500373270144611882987957280987682039390335014953943968520323627464876833759058613331348843983949605421452267983266727227652024771646021191408447822167385735444041175162503564918643953453661706060890228799723719822961775467468780723866980845740845186862540612658611309343749750669992648981959558030540094293782423748371340685673146224047263831249522215108832457347483083574495231644047827019198766794173014687007081554986993614257078948852816743802170698874356216928635892368223697859109953776782633361472709791007197380894404864172267297849713019071512340399987175990386827509719896647193670814610459109054181897580878117450714359757914261757385410152748054920517741754585634773163876591719172416487305526345879532946161475569194027621374049502330695471813370203410618159190914426612550634613496778465403986249172709962908508582304266803653237366602922150360550608446764720591755028431761192717289528372093471989028584314236738916024678758846255275173730158335611576466835880211157027399504957472050204968305482858047486970928406574028819963928705798544039911238754794262916478927864062550740872324009067206426512736330389338129562253652162703014100554113878091310902167131918763053867939088863762460228320398724320191209977825300234832459519165860214170228421269884758465349354287998076143236948241976364388653829187662041124543044552388754672787817067093138678782948877994042538098387884346514939755490472414691732628711026897183471585202074290877221896078788406187382738002066806072341811199869052668350080459282752873704391968954715589425863556150741625031345841669849253893414455732156711592234644110812888288730876976844237534886687880043273106655427519982772552248248477009660161575863866278788887804057834534181420960569768969958010933723937695467420707009570044146561629072086375399884592895744299933766500199714875574185499279881495770563148981623682412882219114406483309059677274308545752008778720224868507777370146552346624435363353226458685483087629747568962676534114747170240916162230270721327281074638604868853226193317561653710523155084176182693326670384116628605498134581824866647584134519565503399184016841192540754766953758709182810556482631843991949561133630747717313492048038112276885632387127441812393800680966939276671093520142547054928963241296731076852733637317742880611950650160659591656472724157964743701463706002435157735330014785792003143210468287112331042176646467654738526731583083232198256066087739521804222109133394582765391659060396609351820153842754344390808372191526146735744776246972390023365752480143656243565721787207517320325712551748190546859570023665520168154407800198459724422186706471529067101523552267663017100357761875180083928097135692379571621348610514380053328746898534870858281487950234389295250687693064070469695452084080160442101114975140774265078033410070851262478995228032270869826048945911506529213993661023362873955513205309202854284838203650130961621505279138580230640357700970478453306410516684848135212778753725924849251056690541714652309438807534816384560670730277412314705514479488655911502702280202557911645754643475144607282656363276725538567231307710134187637125213487453645437010267050602740960436612058480724726937694297551513557343906498551000067772087254025582423042580060606483594220580476812559734712493775672741063407454289239924580270716661502274034670718455297961753092076930113781827643226176950910860348358624543847633366375181747025777598071130587268675609159115290510998042741085985425268484698896970731220054861466657329474683268928132878411409567724034526943201220482017057693644774245870800144983989783047867079294435247371364074315563978887487891140117018054450118109397562041685752848260191777432485393385859751736325142515827255788365277775781026948319656004756218773057819975147331840117102546193186467937431484945543236092073162886237935911118334110960619578833247482454989973553681603208042574096927228778705956869848421135341983554337084698859136216321667707937640642789516735339793350435860500442755406747301451982173908858332110702629627025641186393280302098788432733469609994743557052730198093767138519761792583163907317080426367307919073803012054433520198513447836062225789468978368693674188089601622578547225110705786538937647842784360752478390768991321834768174413810838095547314977967692699913373636049885442264426612288044982318310142586018251618244763439808087089408868076707666491228989748469956780162036703249185414477355012356343502831019707306987518546390299274165302234722780644801129578862119028428394283394149915333133836091371573283332336987804858598905302527548888887777774876698759023348516255030475838722970613940841080498635993858034184914424764701494290373497185541976632943374267911240795579867596491560658669294248575995383401246970809157512170694838089301928396845930160830432351701044298799458465394457969928640369324172523265166344085327708046625655231408168592002128187226294267770234911543140059623821033357337542981154309105091776421162202145094539147643613154432501765454983437086175672641627576566016511672100101839371432626442890903895731814240627656159349313889768203621943850060748719898266238633296609079748985369484277482589932448839642587020778912943771156198258272068813800735627135565127385155939314003503535073287718194325273103580097251786607617218326604043967126501613193514335579350205294785913699363763037461268151476910881085721245758488693529651145150292638836571633631562538861971091677115272465884965483923201889881718215165434917414682086438249330123640450688291688835775739275179129185685748693103714901652853193409105405457231049887553940884979678264964695864564123681691156492761838797999237263950620904046505168234297199916216458388754462632205288931639394533414218417134629323861310657397161014531989134192972343125589430838329821175203443747390880037040807693149215267126454577816377274911263976686197978389376087559379542946050399809239228102413776240994105968989833703130579195465276313035054358936735824480120445391318144953726442281307088628787632803870704251892517252548382430743432377071793033924346568745924858481883383602751793083538097075482614282872590324014647977060864206237607029145866424947929589417351838207706756685266629899732501381004156627666799691685042635785526978245882628593021643824948378691166070083742615208069137034998637033136341412610427127577540631025136008834382801794301387367549641303209781567354299193060125923067351295515869589627702623892135422965255667234871060120604073317280307724808772053705336062419176838044666200628277373359903217150068003809994010089564596374869565743280452718093867444345371608895566620139889064838404768557599163172276271338318942997194541226256385094138078153743756600724796835780034482463482034130904676866035720505172352242893044823013956543856477064687725293329479229024271693557236947504161864716974271683725360828282618571873548784190377304064670233221980413500843785245626893185527084017304344430828673599781590032846934157915663100529662217864341096733847707206554896013791311197147613723608310535256148273749157199980142679248777845066698713484551864691612048723129473766113324214433150132615495991403861197101692376708057998076351373086097788100875855392169119040175021234255657304302755903568303916561516897037615188653575138145269359622472024873074744759888018433326272157558420237344463911442620197202695852252047325815843601711905745679397537502883416785539862461604155238080569242989574608251084368589510632571252652575718217061729162682110268843049519992234002107292466497213596983036644381040199745941281856364779263692195092584222273386221813222837406728376438513165822041396246401930120282886379367564660879074917512369900972239086061530795381499666983126325845419645096681219741910285200183045401372016054159894442988882813614659558845170703440308788694697394611871949996121826822389452326269758475003979094158705676529587339856336405779252951720423087119619577676879231551336697273671304072329092182095900146862681810247175764256547184550735152737509168746293659486329893829748194139998928175777459776157934671989534189094485127310264547052279423068956708377020118341502646867315642692742413386008350943388631699355861766785487616072090450185341893585958517477569077306786752657204393415364311774307361358762913597752369438749603870148304547497715137820792633954512402350684450017668143911296075547641108647094582087941979326774496654352523959200475354213523887041328313015783259921767659185319342442962772142549528855179780509246437599486663092023692592295977455134126060937709183926876923667008618823937420430170107906901738303124748125979417161357587029722419004948972162392606056690356038973672458817456965714235166643485653316622828179396782221006216351626795418304184601886102557985304362602570649918005779416492908944641231487365329309388748775150179603242198097699869938768231490499133618940833745840286021777010047605847977082829322008628998482644168216709552795526181052774585655038866502919011739875401203658575652017173401236728213555968644922715774487545431043400295653658791152661190793782307025385496625554995201868513114623571612453345491448031702488250191402380343660464508480193502204813713528583545091570008376937677649485139222939058129787644619199499704251993481444399594875256143210199061318196605972746127451579906254244375043532632615755680364249937534120321740278478662830492076132735713981428326694228790128331563884935226253527870350991288079436874702080395557740332106338736985776010673953456782719736965848084944852659898982755553992490109573573074989473818405982119167332093536876311804147875366726049348593518221475176109244171727461417187425381986779566680489027960527886885439138398773706611877166258279055907501974039452942220555588336979962482236958951483868140537276196517604616662536874463349398303262830302185278262850120501377955481619601194932337852033629221561524911544742816728890246526429063847394563937681114135197473708727325814412123032571904425435307743074911774521942833794237056909446444989528466135765700531936266837836376131547233378119788115902174124319552672915887809870722661690148295060077379212197146124079180952596496104532376914999646529822218197790575232894517181179755796658390205593243314711744317425971371386269785570097440012880653848101117983468531338262062853190090031099933958611559958665490700063794233070789866592515864429510668612059419259176800184737525178241970397281898591154172487175304835830273913485313019846881033807604337383212630727557344138168223520075490551064879651612617755370196904059095685011812926425171534447430516900251344457648213010447214879038089661606660290126503529061681402485660331965924135581038076853564330587951057222064565508725872118050934373907048803261370079301985356130996426420959038650109047296941710049350252830653594583664955024110756362895938317492475266612952701259855654789854537812230885239587019403737586015654769286861258543085034805033530663237987309278528338286302797621638643379098738768696592705196188934281242702556727341954159471691380769554472877302546698683723549544379988130763418400512602476978944355108828395847384180212281211894965107666390132377778285962470530195330830723827712948982489197974128950122192468598906494822646557108357296961704185130028340805599953043876278529665974654680787359670757016066251027415346298933761618414315722804673177166979013856161639377802294207706154177790593436061514681398443648858103867437335046680935287341438257286161557356519603071744558946134479146978890665316720768084134230174220331788785128619529165406837241951876992211180436795157526138501028097506356608048268674436645853672796094230335766340981441184963820925382910862901432120589211890834619899850275265479226823002443416371577212552654459678104257148453296766315698601369765034429934944081893497415159229375575137825504145779456268730096594956568194629442007587869319345903775669455213559354230982980397719754839633507575009167160053143570019439210378077300110224214049769471713912524070886340018548231611579567731589885757556952241643613952872771461536862117584517731030720477620841631152454380013600067698796150405461382755343099478175752121067132827247725667543996789876772989955482841588033327055567325996071756103146993254541603618379366517771992046939525985310517179094433490694423946139024830884445048283143686968111301580589364218428040908180413931329454001963698094130137714021836684819486176560487044821564063898404927602108737859317127574586175767979882280075552868438290015492810739785690037733332299798513326310640558815689849433749658344012531957200036220443060009986247760032949806864639343169975809961910329548400917176325297012533215955272150304252329494028539656487602249956107265604790141079546237443959112675400604286719052216096517223345613020338475076944399629656917464317354607758691811610666054175359486102480756371004232446346157872157038036494853793396334016373298292738688987104205444412983741458770052477618864695879566599698523524700973300090210983307264981827752822456232238054844145919330983162164603281309552411240617680591372646396754923305017912968438035880294278797032745755745795244584402398308549396134248959178796132802092631459673759988178221490645897386572105296033674765358377886399244971225989900403428034073618977526771023255001108681305987845686977385417836278792263879756136021748380045450847177152851411423896516576756241093582622041094606422932164091975949423387394724164150994660197468486743208600913954595320453918263354195734975290081950746988005196779592618828952464874555123236285522075191838138077853062386328376164783828518497652652488565463787295745271030775665087285658924427921271878978826773531204444473462640834633534106940419499911303629153569298009464533710152434549035641150299350523896537154646194874534030079896794214821768508767619022901562527031308982657620945755635551966202371680278674415786169043790396589364128787217419536346718910152954020089953505168256291746005075454393231575721209133887799518174805340428845695420121109236993562950716335230439115636562777196906395121736536410907393151920127399324240449507971816323035556937815345151811769552392365737787788854611557706595652118328940003103886455617258661610524972026527459070963084294377961447978446991021168355199313852178726605643190993025256862285938490051426266983889787851714351728367220223315017129332092936788368763008002901847775415635161246063522641024815997170129457846138607444370887296850460299200987211582144948099370830056358753088691544104260298071005099518912742963099055746483094323237238493014112184140563833364350056634140450301181879904604404319036575895996057517878295064420608962139714253216479471850459563759687201561647840995431366020002645367008528536806960390607739379475571767246612489789871613440628402577072596131435291959634937835228561742198142086748632776940456566965704874484655283212960541314857198927078772235957120811529011832627121726722199595031258765916844765365707015056132162099018871769399591295597793169701654126356999677585792203112444713538451957971256592031481076007626940225758881014676536956569963258785434676179246634958159652423391545800823137819968366377755536849129277646151259266729310707384993599212682736723093734559053132705242118288842818536864339484920012147890361983755617415501548548700368604544668296045488248822849763029213279020341172012197461615146837492838358090520479313278692505739244626374777094130781684214239726553013944814425076736170020503040234330257415354601019714695901085033524911206787441784765287657233273170915356644391729343685604937718414060444623750351346348314088906740284224735630878772428066762276620861405043800961073280341840268829584397666454761940144655026028315268646777418734094730213019815450770368934871721465590826651609608204685263425762318625782146085907851098395664265150695320519969941023460182365277004840238501193236576224989993341685506157965353590320275527193359647258075303208592958805497789967508913991079536801698010578513430815641351472053912886700664774721275714133373528620476665745633580784557106395498359443222907484274477523172230098629249534713932646373586825157731016877360169668099199337201180202375712881413121254282365304377212466894458126151973045567597692384453085671005531593226684412519521202807341294781206252738900487971437781268551089705374261466474951265115770089100685863970695330884508738004600154653835470177811793442842359025770767686723026575875889070120599430624878974649081091507506056689552808809270591497001505301494675595151541422352568051044647180559581176650800943541115705207856450723718053596341411927910853584353316943642777432416800614322208833715007642733017549538976248432168746692324590087836617870766535203045792531007386888023499680915952618098114032369249790670732151638040816085401402487756397890829686247781863548318577283019646089750014551018849433366747454944225998954949068437346419773257764775761269754155286107174200525663261039632765234889116479265828135227386078620848186331813286617933967843912420496596482639323369202988311627807240724734145869917920449412906277356527182721895625807652184138655107778440228593682143782974883881658484724929225817725806702826108521490471797831278491064572375527852792319355386931891630972326152074020815577441655566355237282387964552714862950371145171423239946519599285553910865593685308549975438968544754100446451525667121390334466252664636671973714768805852879928452690855847543113823860109372336658091265189087658103386583081335631329607825526511437828715614029899008853319242262816408938641142510650949627999994697139688994651947457441993759345285604438496403600976728774925371431211823747539338410731529546736721167720277672565950504195441433375366761395476677821267097296362333154199364218578119167933927302787473079120711737285571370258421040974652121891291565021611309546493814318234140731830778731672539016953880358881213322485394038944425966743498583144313012102375587074683899464763826353434409072250537462240019913811638318132470725553356057635229321751635660078761870780057957641193279344997444543861898155967084141428641451744801998016348534383719979625690475350913687680030868146200646875450793342873189609224339069822235165692485357386734806765542526529357020391192498273902687253622269998807280322733457244801015477196399135479209482766887291057505590329793736609467931325780307679057653671744587637505318748937225115562015119796852420034047094360586355469866921357928376164386753961739825260858215595672480635013208830444609165632429028527116948639540111685318255931073896388938398182078017840893276757752655628846169023235463251798979621169769976885146812175028966950508673032312958282716975292570743188368412382228608079326780637536092743297151717111843652851144389446931610174224953908864437908394266300190588172442813469546746427896610416239834928597385945938284094210195621769445932992053057190367514964708190648736749556178796944111583618620822595071912275260425479459362808533930004289053092160619061519201001660897384923688573397039575198525302424333591089362894481507470159291504118734182727142799460634988682830330940532404867557848230293766480304183905285720302969824480024414560673017196132570634765260675760925119992766506476436777748044609151122662640476975669284866819335628593971400467382603744914390701557439396434966751371460815023419035052012159189039055091547831782965033778499064364213460009028470405560424519469603263244752441457284057487726254042138848307039713012362994479743574332116881401667651923258368267072210560948187536161441295634259464733933942389869437194112213185662944420850192465894806733235806525552435082544610520076545276993840104035256548013054975794519560579203872190768279867788782306772564224274188342109009000772915229685290328891325714084752064898671649222610527651597663981232994182436685225494779017650489741870512276559575353845497190602853567641503337622920006976672337900304314813593386421661507341998883198153066739877171964579793900295189471281521823547101562618847856913459796990534049282759278803056991177896292008947302142863917781992852718688991950139802920448763008118942936622408109105903130132619843650004824160745359481591010539518150428015464324562047351404892210932078625733316118459411821228553834218921447933626585574073443600815643974208024236460511945065498342663373589341551555598368819584076933484292286794178522583657856869491538219513271572187280856796208919430678607468719287091869906772889630555393209303942807394065904900287955075026272466362191079433679379238161533912825764219781832666136076832205993956515662880709289971026642199950740878506322396430390788993413959833051852004156781209634840806229854417646792204932471646693983153792591658015844402473265489041744779250953657497667454448072676902986086315054198295931885687885663115191130163646841685670047651676475453106096197627374050064405803089027939863871005595690604925442793643634398653112546100883757633434583563475088247480285046937006730555407984146205335267940670530640333682801961504281752532063559727762263060727844100184586390828344009899743734755414113299494635689698499985805668177260467528619730430316339830302099971751256586625096493417075486298524234092432690083825489924724890559008985912407262436819543602223194993472201163452759267901183226702901623339065438283685314447665451122795884316996718388619735436236264463539538348706177671229094346790500557500069465470045821061503435108162366534102683819115296015260566001972867094017407096153316864061842470119311428112044515313905383917420695126611290451808251307864504018890802962271198152634410579286410629052116737183391928245410463013367154618176351052351016651619476197863799135212265303620701716298619222330077255167285343466341109288595619138914929552456932992600588626365749132922665466301419096664570881160786513309427648357510574901705400625187815000499154413298088826396739982623318433429877078376182246498436250465548506678664145410773465580052820522871511745788713323935216540305538115356986963879148582731022344217586278533083484229321398516860945812969324378221382040826586835474013583122556442092393949202032476772364178690034676946163400655379129558766206264035814886365584540367349907224439502805886314750893708340647349030195070821900750413549200378556783389765271461978847605502298242705791563641553831073350358801131451146895597891540323264143820690729785207907073060084960005722523662268755542935720577318377622995076511148365545731389535819182966028559077160806941138003084188156460804949183472537923428426240602160584986586405778201538058419077751585356368905229619979064968701282955283857321048809763353076523002584184649964060311837518513723811765130824897714047714684672016227921238164746855001616228668920173087710580524670030743688654491407722534790216829057508162932159719585356717741102449804648226329896958541525858234786042365980045548064578998361020956202873861009829375463671551635498165155978749632853342557108501632186047315482433383953784141015895021493025926138645214001506596822179461000758106045731794635423361324907335011645197970263734859679993978898414781591137777084695465859129920091406622603572560613525484393935097368254316906890067058097054964467934133867197322520723769816956659805206487986862167608877960812802720307719111985627662783315402474321407564073494269346615455354563125861177824320805266587443656619725022813758284875780209365817915476144187059795162712820037549582534263964871849602858487926048789358206501730320181508074514936472581337749378196321130866990938939219580621883316352524637773641705908029202976602432909870078267021818054798239518027682846961673115945283794392960436087514885659395707985613901387072232375351151299847414445382562282405574206697003252630973648918183080554702272863786122897731423976849248814076465453641111606003933022731640148972284405042658166812855051456987196999667008830432799306207167535385944571467024668891639421595542257359786879711305667700776676318246905070883012210023296014804051360011467479696686149218166507860155523233202926655183551754672128148592059608198916118429316905645488029689649479136593706207958854027243273198159604447240685466318823536032324091171854461060987480899589543776372608859740646997364325766648048268863868648013480780746363788171712425150703276145818637514963639739990827260739386050216505492541867603340511680632971681130562870352465728194052751748817196575942374502031209940154728379132586143627515609108708159781092330629861004847482023439813421686450800124023192330346919813338423848855660599630371880414723463263407646767758241717191467537661604761173300495386682323115458957538669898286499241794253424875162764740085469984856917764717855732885685235089568849284411283335967439839969780224628896045930021272354230822105238356330231012623496653200535548346385237340649528500971682807901834945943395804738200426537306447832648537000103139654850287111649738369284223497255546432549900747133821855741084947626245193028240879423313793066550746753906024141301635570447765877938777536277900449053220870059537795833546340653991470866310868516642351942276863076186079362657029859746530709815680647538769805764663417336448839769459658688000174204504637399311118735561292769739628211732253973926734745455077927093539700760293009573794215530650331790269454962368532476351941877857969781433343412098958477699981837377245540419107303114446577743226404865942963107813682022719669635859500105254212094858611846583954710913626118339922627202781583987321074191131413791388356224208927396565867197719377167205051318370130767974667565415317747809418339839171330443944512666870786736071384575729315190133220167642842510919598699030689787409606227434539001896026771003103637623251280511443716026994307925965884321598909656808180422862685905930637568319228331063853831861676843123284366461547717087881336902738057642692183198743700871175812230623810216133289275430619831220302881404319924366166592078944432604256695305832876033486949267392013264178017108843164136935862823932992946733724563603505390877040573758208683347362429937730678520654097049482278126066594914439309434240887465585006314566549745231927911264455611842891297034637702518685365214233296312654586539020287387135903991144632881355494068584568639107021359648468402271700549958038956700719157838953792229949678689372110313051299020169364116698894707079849989935558824481770469515946996062336578414986063762251147769438451250401986331123014891414773120451854100466858512770515617856562036856562799195323186263546956772189244573276863213416464554982344157700181569092055091779021129675792923220124363587447982604611135993841558034995106601257941367993097763934315267422384593598116630919642259997862110821768993878312388981264135591049249505787116620056937688419579937922532108538172413517362478093955636958617255838927472282765884844932819186917295250819131723188014272367209730750720325853769425678460163494695323355589507963469057783985627327475408256915890490896986962065173971334363116509718051708740458792114608883189240118053814115002083122976035632125411900098841661525200788746399030448143308591039530530075018540193539452013860327593549360861499130731146336083715254690568136048987300686165023762752743184703083231148865479895908457940255658045380303923598878151434240694605971773083618723789625107753969074757995249266755471231653228941570832707564392731777502015514296597911969952116152638603255662470789913446622182943142008418277126901578718758563396067948052840913167393544002213263441438360306283698021157214163128382519049592248963214510033199164622423563617323957515457780160911576681760394401712370333234608386793701219959084751417447998264909732101443130219203135521461576296050237757159373682565979092113802968539540407264384136967839807771623721672946723008244831144126825212215386849377956845497939531178262303572950517224077924858584342170439355897719584367023634725858545018779706688295897664618652406963778455433525067790689247266429074522254337546765677953272611071800401156558148954878583115380498824405804823573455557194718163753349828102718928031277543955449370250978092237969532101841519335023015486272388095600917367646778792097562652934999150202550411218400735628915111582933676827948295535148584774090286736243781935417624235925935146602224877494107851678716089578862935263630602833549588099531782573789066429806869045866663473886603517804859518025829419676464540421661546238107023273378658020062156214856826020492086402826320480557336640787033100062086003472862750715430828622588385556896801983385191503520950819783748810388054850542221289674126593910008957651448779417320341209024479644290296564338439150884986357654256152021107020817890494122159163425228001611826169851559821745481326491693244199834376266093436214375249509832178939293312587010513791211725558587350471719410765434379033303462231334440728010052266528751856839133480107135406950095097150482243847757702656296428044514255858354957199930293074885955653197489354561275664562797205254975990550408662844866068018290276250116935870896635523738652765624699982902133657036169573186749316286058033374262996807244354916455042193707420071284588279318372593483753394245762509689459082961988322812184346149041657275417728960304411529657844467618894647752755891680251367694355257166929684117785193930287398994532090224038717920101130033858131915723865845129042933755072540346355713113672334516076675557352319188571469336031153655909050111201234984702569007323599090660575903723675708184899990443976598771606838170450914223855835271495818429539183004450852950849268044474753139399653191601023653303797687853228042084124289031910151678958943527142734664088470168731754147987733492070457543988489527026268425909973659843619721415866182519635041691022543218962116989488206008933543641077362484150065124290712378688398753077794664067181749599545356970346876724405976728698160940408956534302859112789465803043061545482180605314406822336897018300473458019769083927302837131949483002575461307645678246572253082427273352116051225024430409631202333144966253089839443460561767116681310674604315854814743384329029977558469568533416996853994986097399897016724073722306832897597210235592418286318426279882563986775026126086307560605144720721897823289798784857845234281351060200123758656688625973150326538848174000554061147657252158186183334281817752356116661493147577096447245468784475276787769453797237674872220010088989992714643793328660084938963209991866664108730637005663091726732877500115403690405029368954765308948881527968067811458104173997922104012495864531017190469443836091488711720725192338138833863769530586431576195280696780244291683242419517932719223324936801611893660616604504246507372211667373993262926502521750177951961713812487402870408175183856272289009638524121146718387201137692006396628404132242952034720163818255606071042977033022385849330228982174745887930546210329537507640356801211867962499200442468254782462694606368328579185530586691347891317300125333959412811222382680314908310757083407123535192529608928101728542298276547572358325487280852440493120401491933699444053746310074800500105320828820594490402590228711503048155453943360358164269299657995420555675342897813514986179936721475921535247927812214535586062195512251569970610350780723861736009732019666538572280566535189853401879365703376481172633048879387984798828493703503622249160671530228074949551660889571141789961062030513887288428012221847502983951794168835534855424413659649165418243446153996238764770699006250731994056523253097020839899334412127217565636727628781309354476124878319062705281448114234084662735816728630899374790962970963756896136853181458651170523467670891891571250478889335782067811306539566325475710354790684314871516716007449426629463087796807925600635165195258338084506423955101466852608684719916194376092056052194663834860296715591279360773201776884129457918777545529541308208092893267427238796817389451158127878441870698625566282741663055735369191406697195006193685852852943141225307977298222138500218941912985433392924802198233715808323512148441641679919306233899592894291212780703215591546327282745266774885392095273712521142366025053571648058616525061632010640104824355840822849814880000081667524256015370985979512652309297476924211432534258530988826674538495402345745210465663007429757861683468121824082094737073862469436780496908168168477353593980412123893684148811794403257618537436884251876155430969113260226795429022834615189426904737087155788902366034400098444050693845326915075669211676290645301461798387935817129681182017747461513660729402817958343350937075520488144716118506369409962310161226668450440416478826846742285353698866100380558481384070901972090946595236399025900054984569850639049980819777527582304489311913315223126473963327654704910691159742447241273683920028908452187644171285106594182017437717356293820064731836346465485240356306275027721088369631257330027066531735394864715105235169170639407398106577949744297720716533784672931081287455692191301876580321134175459465957730060660075895859153724478622819795564253580374041473685953746581602258489512059458955640232485287871932855390676625341825140436035615228795619614587680218134982120113308896591555557854980716424435703728553863332728585711812457498889749006984429506482112902820594259574546906094323544618122919493806949194098157154275297671590287854120014014017008839515610028121745256907348162627714715470779476920842803284078998046696312179905050148255558207348460434361264720702932574856240596008402772130684322117304765469322667660402209213278097834211038683044466662490727439773391860943378346175120688207336535078134647447553797981480444033818908006643952784723470129487494377744049090962680153742384535430991039582429075467647871996982432191387966294411380082612134745141791707919237576798229977434815312279336136687020724886616922529035754463005381512721097489561511488010877975945469081413466607176431544410638466391941378652055240777223086258654690880022572627203088614793596519287312297331336076814549154104805941677782767175545155443919570520763744296923467253368305854208438753750160724918240329378138234254314347935986536371014309978396688328755994684886440547911824329569763888053002435686214982465541904931668698006527227485407794396883518305733659149835070567849088695518167451139300070020397494005293953715608207550078573452325956669724368120217970389352971666912463900438527265680512026885971671303698222530070571730150085847674879170556971703573491261609613124802257551752371774594965443393952641499954562220354400485168233239616182624915092553042382262531214866767343635513962879712354687781819502136323491070020214936129373328926271831921314587723868820014265491665993110188174087757734285043551423031200562191780509999135149572164465935434813295564501809566461529268709212057397063788282594225135252397291607795640780399095448528073823540393682762021444645670091999048344697730088288337948918128808372415027870133569129044012401389989268388077179439226443185428679942765994006253917201210552324621279190522561135632779732624490548777307243357470074245855743317994599508871421660637276223531260857891218774751046434987390877726398746696410439125229098694462049669693496723584150807748927454009353065517231527178689314568537825950535862656730663539980217680958572633517196392100725521911625906299951219670165543918876819015460580747965473058078608537091076210623324157954848426992892816882950729975000199351753783571852670776447139468519172862803506243541481885776008354508822065700667552986033687478436580578213321567825536970816463060667326132685220113310856782487541799196244538946913191476131689481660079596238099516010230858523650067984056119669754456403129093743204020473975602211358452201219685925948417221998428215414857984525878013017619632031920206198217093952339071008129776577263036761462217107362565327558011094041070526309635491369746740364250926412463526371062229354008118507594868389738178238458710619641497877594728244291167408787539785709401511621919417571060450299248245888781014661043011439234228625206332045279729936858756188892202478778482578535112871519452208129081592054985993470094963707565159089797207541637576462931554692905772930477657681136767763711678189311650359599293811156071604130804781249021499013105164108674907366951290182803668950691050823453937907271297354293287932371669854314124312697966037359628264781757346673218338139371310701577418657022713312281438430153291759043269582478309846224091163410190091219094422815269209651735880020454339985426526856455279709242059924555123671223648151344267091407121179308976861108810842408458721868647702826894105991646510586115615734424634405912545985828317300129283619488714766064948706738293314597142923684622457823630845704484356720138322396215352535112681483457722383740843466284392086137451299321506773549742720677861890009132226655911655491625125974051477577671621064852383349402840348042768855879059215309741676066713459721277355070841938506120609210914567194990451956334758138104864750581014640935669413371701391836278000781946153985578306428237282324540436836885763810497500348472799088278056013257077773800149099115464112415594213929418378781754803892742230005288061997331332903955236546081773772425408709248857078982773801121011372517667232937473102029573722585584948914658889964883807546689784429675444885795641728513252234916911157339366729294114079732166453997976590241320100976004026708317459919331430086581975890277933456863311825629378719266715592824213480700109361530813134955111396599311999289308040416373076172206766773222807563233960187512272590262735990511525812670497123149457316026626773846072835880544270421675943266940530495306296536563440393641283452689737836079520673825379952271035504341390227995983938701986916418775625636520704214540657075683817511956507031687740595521561456506933763302645708389767100936895824502051435254342291068403682737418229835513273568198717400603394678724510053286707523561757218451629787715988650461066266325760803548810232582788723435402891144517804969256618129790651720043455647415925359173596769921683954434236127940196142551083771381138467027648145846991354881125793905537369768335058978941395358491179080297786752990346398965086497535375550674045586494640811885514737812395793757580460536244353162449844745890446772484934443133525492516283822022744950455595552144407445909822886568704950065960335609490904177751181877494558569991536946695910604836947354120420442533886098555098230061721027646068276720910674092518667540767550218959741273160060377810670321072799654240174136926858220764674858889343518918892519788020143770092728768212841286238620747001099584474730113070495745590668774209271470773168738102384389271329792522566904156658606074290559279046161595899512360754372109392045974040276000777218027790922136106361061612768553105063516480404648787233465586255037245849206948240934061026038034922556763981334938251981412385236241368687724554898842183161179084675545405807647580740402164353127085033586593735419341335632827316231658529171768437182006984607470657062088708814161527210084908227223301283352173650721694697648858977053254238221208514311493837687669839261580208828650483172700116698083493223470101624266728525882231938242067337994719956426020110179890792600428355505677875426546337068610769851774842308233730780797195798036486828096163271544883518006612680415988788190057947008603081177839915939864234210245895591508476806064240835768112252611132362482187982583023606859810157116517038890979292350301437240771135380470570939865900903483551606659087491299946494157182726563410485742217851961416859787509918680647924368315616931104776302521272635818877176709741296899489802378841848827056093680098974571490831810412536359011517556069587944508426009204496052458388628504377315870846173559828468447190632438936123274884987738489475418120004623245872716428754263993234958908094304158704185044605663329027403914939026964057224909488158237242853319224982398823796898786203148598623782226067988591348280136590539510509479167508693050016134946945877727446941465781554742901245984837935115044843897918169082199725969559063540473693711795305141631778112413363015781867275155412085732055551820127308601945474014294696429499475126257049765450198752967440415017491763753990786593699446783577513603721048665535345356712387720366075090846176705759412213574626768191441973090286933167038780112278887699936534936687532341627644186948454848841992202996651437306753408619732807055274849782548715685106286193535752405192972437748571074990844862178118484634008987959306813103728081641859987956576464241417821206826797175288104690301957214723477312639085397196346496635068116626623792928313363040921701590765829335998866555832942142103818084037463198144811018637402289281722161551805062723318916687627617919971010433021218481778201895042679385233500745430091291271088750647286607001862158332045921366862989304455593216418512553190353557076009970536827892600606011505587109617597458291663030124949940204897826594054428481200290563788860921668914054153226494043640710540781748279714106116763499882965153694732347242534405313643839599451128935796328803177612837178691232418866401522973370678026606912133847802514497760012225580845245827678872945062290132743501780780431705157420660425199990525107510019820207837699150136393359781119718481958813286623149954308857492542792043656682642624975382630041564802642254819280104992005274894043535108961008331735278053326277222576632679329176383084638049589357263158646890109721970600377135947242606190542278756817985614017185983152726996806699522178488525608987629688392063018428131793821752471942992209916948186941543205587845482608010182292141640183093861093463672106098622282851335634422578910637195490758764605598494647542402046951327044541160015463065129274810375310847128678069971126779416843063899731698336556595934470245021658803412917386037850188405329609322666870550810366421706354235662071436469877057684130412488377417966472319591311358258121667753803492076270029615612083671819518685953672595209389987389875052173389150165959165099638736261797070152398508617390349046187694124558590021839655615779925214294389692783267634568356267133631759705671378206998002671124738332559291694359663535895715417871682621457043456999653973361752828293000701043694425366073435563883649560727422100099990896755250631466450278500128982275153398661522874255162475620622015219543296308572737546189075111589262000558744330739919940990724421618474640358397912420575495968267509393743872666517102038956856579950889199590521150196810900599987166939821895910639070637784336421486590188182436343032514580292178756337081843395647468569216494423819031038265142327319119145147342866929682900080674614701756849841969385392331270947505167033219821759749488286511755543238163026500764578802341506805171996648045265952412338301943571592086971867804485299868415101591687898962846336814932551292310214895008642841056170818617887157232229376952035962225402584817851090046937609482040463716263834290659480652083946700813432606944311817385474534982365670638164410201406822689488699970062755195697962848201412049783300559775845170642199762786171523285261035911511349682192288933229436881082189922079013959978222931436509589210908677404918167747590980767215159869760706523746783455734253403318761848016610314088108695222471237641299372898120520963328660550497646536053819538147217918706691700104993872179297515315677791485786648280693804589039730437297404996945583599276819515567926000670790890434404279059253141233626644961184704945212521829860291868853445505620635884984026509781278503458068735743947572163604201262189372949232016675740891683591917323896552887570565246224320954689127863710922994129239314305671358388092409773739087906673342542855960337068529509493485570415652866047570078286769010321503662105243905645470064784477142303767645284367335875284562040267064344895397805999033013412753859466807313811334142134190510822534956509657723288620096890541564837936503584968920359264631004038346979983089737393048719301740276819325733360592102126248288583087405630542300211668947743962948691563916121311943637874764897474406809205356621883238767473901080187050763165656776290383228320889055910599238915349598178483972937399123966983717959062352917314408272896812000946336284495867255948017911935371990979409222288510061014971206504401936016190377192474312585676335993238874544001826561347510454940078565155423793641672854439371532268300377277464493755173427470151841870297720097107757436225191884575004762254542389830627915362706355961406821417645098914954495576518328465259803608328391923243856753937186567340741055267255231732087437804391575125831839043907325572194321428662530328384218900209205390360437271497068217258660809883498935289584605595167005491301995005613209176432511565181467971613691578122649153378052628705378534590317318727208038931954634131645734060070683445661384007333573305729092101807631554597976639510736321495103647311553331971503632880434977704917398867880513603533172488680907790058290187603100363967675979487546279988287089041609167130279170888046122294345526470903488641167568654018388870360659164143788064277896635120870211680097545451325534983253144835602965037673681163848716798870817428839807442461946023713025222062571600652238308379008868456453461389957152340868838769803768121220856330450006632610973182859892207719132593255627848327848885042663299423755849427247644820591744207657843476488256593737356605779538206268251120162690342259028409238655219333458829867375437464153951092704907358197398579265236888857798640502133399954603896418333877581578428837965373669658436971610128267077316674135091964650007313313469469348155504864135856049558200126920192502383775421803695481168875093352295216853528241193983887484760347776527707809701619954740644593826883326640257521380355279491317327168733689844109827114132884529088321518260420077516305196025255607845178047761327539830814337243978901769129961254834343409797225456514771346086937121614245774219226768547334217828483414807418721103403712904408122555111549004016295973944086795443292088145325329780049864348747715216413168299923275850279579103491446021626195828974950387606497722381591650688488652311218397953274187981322124102876168819008958404985743086753194587653307493155886419108900223248988382098650188886600838165357998061004520935683770682326923828986636573735729490211058593489717892211049461081071024660071055440845447802035159911925283009365455435189064269057279644667050155536530834395779249501107296556202583609352859797992976336757090528029852590163841798836280516504095035090728953221095123538014196040199465046925479997300646327832299238925172116871760510862255038111724800623672678515545474185707203416402405300050898896373630491798705168860641532292932932626666093373174008596042394215567970523462133706889291478478047710541650694419866153877992834704496960439864319418926835735311253032700755351240118320920626295734621390589404570048043989830569040846079301909334650166934768358141669002341716426131344498508878563518140825623523293662592453719254827691685437539933082156533003689117278193881868440323920877563365967359463071176851160681730837884082790023309413860325220402756521823394237366429349180583115112087878781538422282780260784565075185181243235677760794697309315461162853795145306190832155482211584603881607086094505570234986135295677620026025664468479147432790656340212288874196314382855912343654014007087818615369286977826019739713123021278247523354953730342875594725632810162295458681356213754950518431198471917572089428712828350428157088693175613795772353124397644135583009433485925436567205785171965547234924327245494893580683036137193206751439023364112187124866664837592114148317910800774127974606978557769088933729488783752274813672369864132900937920843745055928894710855547172102492745196119690217596211899469205954076602276093205359740335231481519517119838938357953187652028964914023107467587074332022816000045505091307273596336486158243309106468041686178495393282085076979200586018577154166262483724792041525195556072765187748903703587090670111520648320895097054992724755151457800623216049313699310684501153202247491435102336539865820461646775072843882144496917696718666542420286070459239275548303400208881595781864221524116370242722023303018722955042092844591759694690621118964562017277802099909526962679806783006497115851841660891577587982521531374231949145069908816919804224407218215609137509954874962136737929779452341328936746043493340022424948533651489135402701533616370993236438935610484653471076709913892131438798878669244263262577772826577061633195739010962497548234123754681482998409497584954183816074250327198252780067111645525117330232763062148227155411764564037507200586216088004895227371840922652264992742122939962850377286468523036276486885740238504963652382993964761171293339575165869432904899887625124212420271982457143802636433540939042550467583297605251379976895514049537183384777655056175717667244351738900178047510306988383579936979311075756755680781137078568409589005499985816740907918418816089082589175996376334523453096728298171667274469323259323321852830864242101343003045300990643450096634978705074543176411136634151264478580631170049135856794293143835247846096980294351742486834341470812431293910272070558367411289802598434053378763825228012242247296869159114908754121191452127813868000711762118388566592355156440475891862020497303696175942452308844966802767987857960714735313938632172989290565111276484253016022293166257386679889344879743885211609917372723375257337772021457474032025500264360996234238105746428055757775812188740767363171114786530553301000699829407305825349945972839203664645771197264276317076940534424412332808122392522628030138075039478180417636276325434198439045234897282940496343958150941710601801046900287156696295358775293466733946902085287820887141236505919303374864044442371187537913237888381282781001784697641389017036067300965651519737421566035678605103227814625613009165240134720217151630839336048516454637736840743457986643654366916002309384613256416182724096588996893403670559528824317443809677269031283958452493463699678237226288200235012327176270783732136814781196863003225416113765402559887817067811481709983206379930939946830589718069494164512003831831223734920910332063930812070044393622338051637157272629194574172342453673352950176233895797015383190689700889326074478609802915714845227228869876074233418353605416301384015939099199536021066128057723200833079703622140259954235555122421968412408355805480481493089444592148293277463999123043217878744953443684620403642364115665856291688334829153358640351304918993675068517485880853844331876684072445124710807901806736022435309709945631181892534955792907339853463595595139121900729002144024104435477047627004566706840274771050502664698895796760665082171938869890130077825963603637550060609042496764989717997771776650922524753805006252385356215168909977046082398952519880463245609792897479225912213621250455756733566058569080741320236454327748726100663270167966736423162830269699810555135063951272071085796205939634271486542107890322728474082280013379778272429434440557049023741040437145484671043665257425451530735288436519524093731636521886249686065972884939904230025511598171810344269317295634337923615379955691278501742111691295476268382396351705018431906709046928717438050749298194733160949100005202588506266995967030475854965127559156272002536236754126024725516477529860758658798439004646851494609608899473249394340555333274303464375817338015003812239516708595337842027242347471160138005115439223892271666753070815266147474614833104003882085149431618388222907964527472897050381846177054208164400851545894251916019083253618447080766514453862206350665844833490723775223102851409833200506398509460108851066259434291432996010762027555588430256048126662743652673075106551942920831205634061366603615113954513372042937933459222895954757514526879804987683973762506297102097325130797500640378132463069905399341074766448188780442524243496111275999605621403938700059031007397246231024138437822812211661205193856221721184390996320960770352205898395329118471374596628843168517479510818272802212300305366885471887477836856011346355236844783715891468306942741880023377108692960897662611697226086901180367154726495410994562727571591115881435058064271306748959408665662924884886209332998180915100483602535780564429150326179586743864049417271805713018269714127349461720655478405657248724400429911021466595114289294069552329470325399510217002487513606112173356619568128560768427426975511038166554424827727680956676254429143719815063885745217613468135926922822460556553784234130508365034013602319369930444027353017353379993516308970481941483988234584564843467653217048573951218937567182229315049095720271617341553804407090049832590491210534142654440225149818934388722701237900545995463483141832372266305971437257527380830591681762929379672402831574644461623441692100625382500438483248893143551993252330553263149866068196257896978851573851098194491992661043972924323931889754391121464365836275503128445991117216842212012365650072933396502522449035239747255823319888573727623276516185038976342388724170541422990820374056437568161039339107059598524434448126772033301333435320613093218588471997628648974135673427822792619520448301375469593221112574480739588926071723003169002710648115030516548816940398822103306308546665301572971537775387809923307335567135217074112328690347298671079552109633523078314970240724457536849264246312817937442913028028419012141368771123733148267610099456970268793513673710203771153025106024551432661739657468511823078868290415667357171757366870533300554399473719261883112973234206575237392222369587627264154376983351552229462433760563671909268926172548878442643862653257898783690586989752562360057521600204878339143240023864915728893989979269539039264131527461633349032303535912526591812865810735139573839563253732905348759507800718651256605490916499721225590150625555707670950680683315879937978340949255915542045770263144906057707499467134047676790519168813057605276763711855905052426298695979026488738097330713966699930723619261517237341742309149426797547724529504733141238874351899616367810260601493303057274630732782437889988715989881519128798639188557017273983636975828847943081745461724696332933616601610999271446719612380413295654822367481804273097043468876421705192646014001231269813473512408858047065350697687987755265789041188970933067182466710358346546918210341765398587700291415774254765349673438143251419489661375683647327050699323198910245675144102654437440808913844826062414464937535439876698876176624496965052625060956323041279946617783847864368534209032508186635286032823937387378419924111227301307156147800931140695709410355103979462558879543962251768043287835682978927133887599797062258198675061955015008565146233454359117072489023005139528132900613434660015171195653063095259166628059849687816253462202061865378572025653469835168727708990906537538840306677862803238731212966524837972719477390967867249690813338173219966366668366908059447633259873901274794083754500193924785708203978323915889554272488956343087914037378748915106828932821507142629762148646039449070116539289157157978519862246329659328804089167674399539246920438704653309107811110382739404484139073174831591211536931768843327984173031639891327808767592610769174878159036523827896875172871520512345808399089124659627441774783403605199933044439191070362292520973705528243283326671288302863141166736415916984741150770264583129669996469294411699299371888601904080113696233277105995634583105460293284326822336255026406742733662023012176591131926906562736440355717954011455959113013434692983808028330793912794410632498062834194390159648404077969165186705535463899647030249708726054680710718001446722979616575234322684199327164549595066659260645476870865740081821406188755718071117709319306468267288882471397169139979179858308745336498665137502363545093147946574057730037788590199042820221349308593917068871578745462873523122298372061580108879670069667720673663984147514923350622306390906506852410457896187370568796191911270301951931415260200881022596708709009934034771744336706062350560527781849500586646587952131177452129494652959027109096821694197361122791606704540918065878629463690499952018059979011916895070040626048902937016730288950368972480601102674339456858948029536414190991022919664828031635819474682230195104926193462946389108682877145270733155479816099092220947358010373225148848918250445841184105462170277308556814791485497502656149339859844339412612939866166063044466635804450616214572176582957411585909058768251601263076045002022395971328042027446225399347770614503508619412163997000105868880122284671318978562631423588119519021205306965277479449842735108716637758082456898372300190944210830274072645166260650155515142134422945294772925333877726140133125040132803730847765157372312613187655812523397706034519034440827273429086146765707636823630341948818781303903025161531385771675635441459875260792274579532086491177186374718122683973113183822377199238325052890758953054338012373445682530237159021374970617502034722140464817209559268440247974339261577585578092166120473945179775770098430149716289251142706292681416853189889819337647185654029148855841912016541941430405673830570887918768836827946843801994660507045008088279628609010105588556989885872033864743881412493167268625174329422205626577949446709165301201073032182070655907649069783646211225022583884657700062356934570187189001852269363122709691141610220881156383465469350751666219311738162996099816632907261513964353383817424736468692698407529775316966820006741936687902610965650776495297275049975589918724438329224482222892455927158044363322822267917150699470542434746280974073000107841020530378579644550925356275917140818578967179899100663061065935972155547837333560018656228279441776825959559370098530857977306450345768350206882996071896438068563135727368098171193278912866439039884373574560027329806162060159762659594717728933862322735534724666883011971339140108923392610262239837151746711073153048169453139113420762982559383239154177490430396574384659017736244379034049973164286984663518892920893427955098849939312231571514070519437004026500484006030352922761524486244909258014292639499721560757499445460458358188064733149750503963764242291455455777873899327243843277170458147274875832931305064688773703404310337645736446924960655540525632660429117672610968743159887003424508756414983557880678122934749445943655484627247425628682758308307345131531581479922463773567057263229703518528571071194266091332287691696452073281034522394856174507895437444194357958190678427050158155873162473339464486209190945482775885152819663705414499170776497996297355145406638203868467111847622981482916601955679969716091171076300547021273737392198995260241791766752181364842376887175048925651987101549532405688113805102457643922793122087402850850175007991721512664217259680379418552218042197629365263536597935322049084145964846701985202826960506382295141013186350821694482802290919473350626835194488129296085402803895237350760600174956539382720967772162828881370772628482745641768067775929027682450660588819286730296588026310518741515796547479864429356500669309566549102750802816049589990777774213063724226872207440157054144353650459903330670891024417963910889711782793705984810493960253396790462337133967576752156913546604575462940173426243737591891715681421372987819895474714569984410509040951570711850178180259623805368277616897994392314610350030157056712477496154489740795692593771978357431425849437004487716916273241465319463702663826136997699516461227799409657840769185224267027748427512757169634867026155685813563715935191640147739934343155395418822227461543908516319658520735164570621177884038927566177573433914710561849047275978076532995241810601169538342332889624286976777541623035841494377372305607700926834963561031339866733678563451088554534486757968349813998041541758030306202756755997140721950648340500404445802763982004107913061377360335762291353945368597778463915334651887825482495965041015194168450557363714918349142345665694113375901376016311142612925442389473601291980353479576076824879728388620161713118142778039021892944819819454746204801429933551852830470384971354189283843548930617426387499102041106666966757948447988563612600577981856387033626829345843764911811156525224501704164517297679995456679662117809390728127919752838044827850760626382537323906921088561690407927678127916358879811071590893801889039616153803092724791297707961949341897754680406962282713673224819566798286929866666414282107442121215183308060615202053103007669464766512377357183650079062916733556474349665055783415665386453299783082406952743440676340036902322181186865837736991006092805465332719556709057023324736709664390050850913871064583410751534364848494182675360085049376345034864124337151447551151973880612282035055944335180946449639944619099273236386330654745151859885054108788237220703862606725018740084100872192386041453756727268079815901669194986898146799665109137726497484440580154465942341924754365723534718227984374251165613001438248259608839162427293361284011060420722333166901603144923696153979920778263860284464396999281885523102894408678647797433815970284131129484165373969789659582371487144753727519997121645094478918246757624668513017171815113899305829394199537298046159879069371661689632990978205745584755296042973842490537790216169694959562013403488374730865619998111857292910366339850428460394907815394631589984009162192453739646717152228838218053215796570064802503565955646947464909744856529671396197366800308243090831997282861047054126093808764202370972847942202880381928718353340530814309530523034064431565458395876594507796337921240376320647706325234161607053531922827393589377714118182699704646097550067148542768948539894602065365690463043495504168931718970635029620549364425481759730393475292089004274417020774290396999623891269165543861113442538170163924722979030850435618466616458833795682592534508162531964653556211987761970590728645866658833711218858736740438735860565319791302343499673050980682779366985742316397250406038099426574726667170699112953671391800835947049703111307505103312648213862793490297635128928839411175811821826580421133821126922804899677194615468507631522662867421572592438457583926301775139387295358086863105000971698521257987612261159605357827808777432546974018088065767583481608053939130171764204403738235250669294110265946339011907429249072749612027817992405312661975157431262755490938317056975413132762137016750486203195563370848784102644428038579772334570915648212004801350815738209331941242915581279426308803587977774016235731054558437371766096103146202235187929211699656894702897958335744876103473684032459508001484605557860273558040111890836495059774093187887114875530063102925380463789645400635588310076712179786418734914185881660495542289416788506360239642979171011596955383864308475153351639810664719609344534416153795825852221469446470388572529213240612610595484337875025102463906019149574269479012328045894920729688154640711697125633468909054749479901313734946847677226981194958643309036845464941112999105681805364458394307007842747369061489956578987844768029241721908514326408694472868783716342148182249945195330403871300531522880961882462444713520164073150145511690274096959967672479887912196097201371530553010481692146813528189451436759487071459840894673467396731832156609018607989745887188565026483650306529711049025975361726357011931240132978990687410248196668979187477940735705047604546738387072994260565872969091226408003507908888672689519140108536234033815268697387971091894104438356612670074737269768489941919775690543786105086593594831566393265228405521628752309756181492832485393733167300532469143679902284461731714676083351767170685431993432177170222846404889893518914671060174693734041904714397417684523706413122096016554324734013733946768479889560141921926212199752585023589990853006684826422397164830143576888235563721663448664602053558554384462673326037266800812120014659093522223118693982204651151839090586902121358826453702027471449573352137986586761218697626931762636085487848740423309347268035162878251676737211596926328377267925337591289173653815546849171993364346047219159084584067493952752324953126769030746942521698734941662693027993121781150922274177284811074747056942039243539503965532298332312325878038555368698742124178426779180879311853750868696841132916079111290709334344586914949316883108636648403088536139844298327362752861052836806293922328814099646684372814847373494381876177667438693981055530149372794343760569497024465313368198614740040558705344346877623785908611982907547877123360661274246687426707333875327796545117814279252006355165733182759655548295649211088914372046776846207603060401305403758088675768518098464280435863900437359429809465795985103349671477963842087685448475098564430176973282213864872037569510792824918751212666202061684348102929255053813819914061356924978453658044736773808386700727348290042101110295301587556891458222211704600746787308450888639052088789302368825141270648083166457567694547448898388464402993591392646931222497386550039264314069350538550204605949687392214168622271235682738111451476321824049151667360296143266223315971593684790694108867540101735267975343633957781686980977059573287893855926915372563122155867162991825680543598943706537395498175361769391532866026709691190870335891012293442626909521191500218671718529440558720023373863715886803220900928061792205231859637247904462893737049393070222602425210146397634032042673112065040220529759255520721883323404110256838168143143715020557954691665318936104836623777573047035162771711822278427498298940159920176107431321570057620287247105312055561013388912427713205778372224607445487992429616919508966309723038776901235955240028667981141943482214725002345856330529373571578601066531572794696526428024620396524476087815175621973875438590287937129451222666222716683657417463881127234204398111143725091202387666137066867006601907167907629059372999674037656871506975645356773843016500108001539254187437569243407137698873068134676337120537631252573756339459523210913825282656906313452391094867411111437704216182297065567399655005611448272549136356542213094911122308434835020823502474904613013036085905145896712201463035926934345640247037406538903892432926279396585309017715708219292037549813861174220565446183015401003644527027012495754134290279526717447475217552858195954578364171463610715970827772112182490349786788242428126071212843933152140068819620945397784954880404393374752640973896460757861404855443018567103236552643930113885862500896821443623083002913297514712750610118671849097394430067188209421521971854341200161628516689435672215946369493842855221884472754254281700891302249386520607217400956248343822007521273250525682077778090116961827924651656496166316300365719662770586841177762928730349663940721928744332713203121953061913713232538718808364080589225630663665501228627222706865582363568737332270952526694044063503706403852229514261787596519857836081828391167294851675618693744731774044110140797588196026126877036610738227399524926781962395999791180307781650853202126742340805456720356880438863324283950902905561495441678260942987702961730189396430938255636034832498213694936971607692186765129055416393328527004056492871907670817761637781936715139718900349594247317236573397323080225856583571812105873512957988810067908674195747344907653519554477595051497165997214648594832310419009909952845984539351448374628055314242174873769065007227459994804384132566547257246378596298659049107580387419978725030757633537526918156238784526089575440292662997299804847177067574831751673107176690042430895723674796885375072896369439019994740062266156698597096941661035828065056711823374762958047320790267466118538457115530103250539912802199268395386205770481291447152423194367015631958939661901253772772769564058193183655760833699678620127454752042362495900517304488706416125291583875927341798554585991795256691008768932735524351356558522128480939692244834454792672670391555999034173641884421324676517506339588551125009177245462440007771525380165232867805967096460710274172541973116212052689170260287550911619210250634841413618768369123680539720160721689561635181850801135591477674385249838346004753346005801278334726925204517349783805499024872388460466952363016694814690679321183597693513873553123148524035497933727891861110862587711252383166355526018010586877544654193765431993321422085910878050960160599785724123204298253964900645875847396729292474931958125699066834966875290855351716285569900477362743754145545268310232161454279299571545761394767449940441677523340594457124512054655686860434891758532263873358633913955501677969163929578263265841252181856980579884198725909032093001104825086745174854981408264505082572429376122942670340810139718316406535282318030418888291381707295767786119796343702108635229376936923708959564109965312001262687186846059088664499099616867382013672735429469155209714781029572145638154942011098445244485718936008642742906690543955800460462976869672841585228816208416675918157485497322739693894040608801164934327318122100825950725402289585158209159732803957872028396359996359507053170303383116979993442392044528866996078444563924174950370701553359752989146545255435749996211670584859449258719046659233706988402865628422201856235295630357795268676976360204980266126424108920393569821383046469829075471784916113352097286485272212525034020030893635087878548975152385549903060533845382638391688875588429772034919992281217506206942936655416430327473292689954323779755088032819421614386890268651916737981093524665677200529166168390226135713432136522746306840778087323271027959447147676398774642079314530939381071299318975299036112095081082362596073299247887372154362570721245392910996209224831061748537995600259480697198130530559652660229013252924083368022361780278207187240152323083968600853859896052490135981665920783250345025326626685760207750539933461313089515904579548673584649999986688897101486543190194358243948406426600019380091584222586869607859783329572260218677827450699323322633445092405555390345786084677960544173454411844520717517877811573795760969471184511297848993210495113623648943281943320776169511493938953800311621493955937153050858626142057582916898449244916585059920311226925608383035056140444334134001757474649290134171395035305165733514255555504852441342239679886947151366922924992571446181151643952683910852399688216922590285081875650248171866615226951983609278691230436884444776376337905558308168565538806158459355518474991826276004634451985918848607726411144525253094966198205019214775899357582821730048352358010535625606161384784563270795100545204709863728136515217328107938054849516743510111351651914898008964079900946380496520219932828804416175558370808434064983440875049290449954350496099958491078539796257253949932509310067436170785281017651792397817505071247037416485833452690133592862333847059772406761669832479324785053297333126370645469610816736269400598069951177546021754942156693494881338863049820446208802407526670289170939340334510359610070224342183384388251409172621436257543961703926475375733571131418274075054925634819403410220710038395271806910232498087929867751531985080030124087005208063282743257268917996566933371810715556675362252400340103702692027533780589439997782023544326092894658992678361709423246499760279901169831607260725650905396766899407106337411805379860067406687145178622923982386686223890783126024289119658544404586328224357514744140166726608676230649829128256784272395880859032272835131284406273062040624625805327799860100841860327627371489300177165421154268270084644941907930787452044564464098269174338241282320834115772708419719309361651248821223198481798618717984597371764856859798830870002653885451676302988992527860765188840813491476165807847706118193592646855118839681237641552455617914265415613428419610494185881078966897767756467336248896080027104030154405295112580011910247792934424731923164384472427705915848489184472808553668564391618395916367690746075463219042774246383146932341877658156198861398924286150826348592901054757485040817345258072729749037334491736772781899865161904566901548216896832258910684032315909556309752284609504021785774887381837061009892999119321107777027542094747582919193279823869459436324995384994066622102430468455528664569115105002604541862466219809866724440072619113635679789362077153150969227165504609600383156066816156314907841892252659239455643701307785135502754759941184217245276890285742419699070043745440902476348360154363939246457927127033097018242253053806441432201089607623266879949635932118359446990309735387566118453013053690507745103937914230712655668134000237886974042746772344638128852634967377550589308864133406715155070635767788490834455458939393351784280348038287099886871031006863789945197050633520549830387944216851119377504180421098253687327486026181933085909634290788475113791813717245396262980473313881576808614803732468386170926541599646278027275297072669269588243460869058876315919869662493272853114795737100205589865433453816503330510514742883210553026554088212065905979115751365735960151763480434074192884634541738643830926381020780005980066383148538935785709607041253087462140554115374272799343270646048214868606988017541987576207677342711094872697744146623830367520813140400503859258058998133343219993186031207840183542755287654323377287144894193497053622212265968847780493430332174004184564655952028278976170601580900062168576600055113340494026797257514954814342413745971965243102370493496355433374294009933708034887747541897798187830623468131270356753293786005504269194183050740230721056333710230607246876397853152203651893755975664390863047126028251265825503589218446393455170257298230697447781625973612939384797718356254267059251801216859728242934960666939730811885007456640857563904791425468031514131188587102138375527649575505165523257827105761854822085276728003340976338312511044605535364797487544825869765256637511471725245881469892505363068850167291078731019258534206271626320619532419153061719314976899924795760334793789391392791344442479361503715011778702483633460511885122993526254943962568367846519412584941599851044000085552419466632600107997234704226869652214413172397876068583944677475368824400768750570610120604281924930234308879546084643649572347911827248540493582647968222099479302453430207096603086471422000987701990927759660411533423824812861984009503703505905104810165589980281742691768561163278334185740279075268701162955794796553002181043932467306185876006018474894300535903407479397375176238938568596086216988131841405429570174993104688573890746841043979859714466436500909739427942084933053326315275310949827924445659728978986699239103691219613337052002689892705088793625521112665454980741107444103716279871355493639933767977715889708660032308490854971087586590185857788146943408249683030416451348620133353170761877311775224285096876883018453192870209184763434544947582951473482532628249833953528544416178051543176025734687113725088178659478337517659375805730183833803181530642681132003034005977676529573843447303356652198005587807351768383540304343394834648433222465122196781028341730629049304372970420563186206631158707356403395286232581481854851413501487775324425129586392648145574888397072937719136407559116599110779427894584755304054284589600235354994740893041770433926310355292171381668245887085086580864227040686763099934879399140179296027392766391604996610481163107267111675252547753838107318016644004907986693388410262444901455039255960752526807325332429047246440817695105726407985193592309332844968826127930569565654420189758630903363079879198859670141908757756507884215321666338243273995212849876437046533338791959802177169038503672278777131503573802989931738738760507866298193077232449307528822187123932030542428628915140845932984372065923600468557211409029870324812482656761745216322828007919892804700564116109988326145402890626369054228690550315357893664210194342737887809874603771596031870687999889116298963732891205385051023026358881074714327290825150340185043991859028386922726039321528027783732800709174498086950653798791495417407951833948991412760935786026032429589046735240105404642644553674655645061169202974837968827386305185045199809769385539232442294803685516481726224442851611360546998247364878141726548779472843618232413167249370780422402179918485005802059036441983174510214450088022855045052689024285472984078745006270048796915097577873978657944007159801872483964923778735163177231928601026701001577879168888785630569356315112204016754204532711994728113597746678867820522852549946575107375309439083890846253944228428459209851417193385459536173015441383058617414023464070477245297478659029949569792688069678228104150068146200645415289549997195248514503672815202876861572369211177309132159250327250500982574811883441317633876379242156360663106767162207244314633060371600526335964961185020905727892463352340007922354503483240824019664097972419272379708378825839662865853790936751362419941222444196095908951636619514921380065449845075015279959585736703830730973784272014348156624271661557946312787943508440193830096345791972889072491895371430959792953735031515426464598795074307004089401386254520242822634187450818584739418780939063990529317662713457141785822343943575832885040402041751039455342854212362817855046051339448021908453925205723291791083578928255930542299090211863940122737959064167061642979610759740918546924657275435011936226599349438027182365147159751434001207833196215008885726210665855037469821005986124870823901200412731673379745079101007297094332364742298338536716480372250798877548746932290738814318828002544503696704870566856328679744101022450283707552241527396676230836234706406380886441362073986491892462104056274471404361860076126547074961006780703543848049347684501359689624770050390907205549626226048566466298943544853565880761490271704358841382415996603432278184698821464377880313615905744275669230174304503560865474636443976413433987424838891858215175814722315907937672687944040484914206014676300607463109668945551892478724804035924010147008443562974072844736940118576592147041691923067557306833455555700200297998602956582624284864727462419280590599812639345557660976702775212085112667586506292520099235394040432560298688266324271721456226559841517537796755988745279362256831631077822021737298433328233078471404108269002715509469993400291061003598915162391941006281502620146670438562831583067625039348671697512811709162148197294081406840550753636525117134100594890846707801672838081666289696214717690615524496974744703397195009491585454911320814394006791738835596682287158555743890594020463264703206904431160253122824592757247649110898320908728356555775604146676634592129048540115626476733631722419133067265106259631590429727178450452133932295435675238649947948442297072557823465310728156593953488663439522903114134540802423528054564481969295890572354483048711346858509787404683341488684144670289896805511256213198855480507772158205629673978244143991573710752017074515175175938459641503792523928428728645677333035217038466972179089833095358346534454861688287891674478647739823365982368283882545461708329457855305839115514079706054799077029706647263121463521217532121280615096966111834313050687141984328117170324434954695114303257362223679233818586101188190606644351613730606741003418548286693798327771836468548046494091204188333837699207024198019137672065181224398102125012206859622567203079226075685178946818449396694925370591706834881475674254595234122552516041353268173580745220173030146900320273662010058819310181245591307964979015437559528071839959841499610716857361348432513241717761608003969696857316438962780756136962731558793220878972698736844349536541816739229443253631826314630802336018590781119171165401253789624527694144122618322309983900013144583821485636755701641967077981927160147286604457928871618037372080867879464369955939865705059473418767731740618427811634942352247446531321488064695866645823301001646518323522949213681654633304544392004547755251820713055743981043234091709171397896669744386194524700311315143272753101407832813926514574408873720146430609993638120435677586772108331677984198971741625944058361941607309576774779021658043866238607788352401695112764921531837885803702042309232804338775131587343260175033063548745005895012517078682413809760185960042483798881907896151366799182965962791157635789732181843119079940080692508585079967001680104783188408989114601155201421400238326108635485211748631596195145359250938084133883931679654498349109050481094024548780929605591665458851185410105860961127706725886081467477128794386002274775301167124539403647060079090691509440263143423600981023661349565682214214474346190476015075196719608934114139959206332596001976991859772913781246866788817033325455346848711514652748357398899349056878509124636413532435797068493123203808508038995212557822766222651728034411788480304280275900878112064837909793705638873654732256810888579249746565428589597413489548987114543228753989881778132883456597254703938997998506364918097994028713875909049161357724921528043997206744498574711041571159392375906293574873492243361334415810402782401799380383533316108188556185322548086163412502063141652961291047335079017079705344969593675952715406868174472546222001859623755495414530858957138375740906839379209511638330307586746326192152807681647586057095338121697424154719045530296138583704401819558584061747316270698060755287814652680321702979443235859840585996177055091578177526010493052225336165107743349701794556698543268061882196619033331304234048658076621419850019691236674388025615557972563328405422691947189167052734176397101205012192784430820569836302091643514075545875633731599367148686646509155079604621808228839820473679030695388548284518839039538523441399259562508085785743629781028333906194635367763814611879253907859007932627282024482404551645997757398556532648295530334690200066206909146935055926943975032919984962430952736480781354758336262004545466623064578074162852997418002897058222372031206343549821045764596362289766356562893680419143218604899711315104936476585364206828911070277178944254473004396100948633547259548138798264629571887408027600444957478842475636931716881459624128221718851417081702286335385178516287208441239753841135011663362860191764310365320795537113439189144639705054159397546097257504095804571480858060442935932322711788121627512373226074819735083591499699943481736856450112292383515836750062471095237664570027174205071782973825555100406650279004932378874013637420547970241231097601377974955959783792813355233127152081740952517849260522300906936715337914263223367881203400953493244288394086441061626607712951968032371387831587291443754957425959480899510192998465026565591842612701679060105663494973522797186165968840880490672679746924794139543887312064313112206300507948550058078418251105300090556552387182794795864891473664607958273731351681065179111961417285964914006045985767137537185526575547384878129818553819546437618762101726299690583540332260770937939054254013154501925211920045884182613186575586193084046005096235899271059134941993365610798056325583448588646121205246070222295531197530444078052553778215492370552695456610966806369431705143043790481006749662858673118564752897767161227840681619359404178515886064560657918298301365940491787021155363347861642315649784170532270429907349060721361860063515308046630307961806635513502467115363514856805456844361898044544197424201858036617584357216801555832547542693136071929951812029353304842097533962855106478719887229749391698325396248430890517462007236504876434330131483039946525949099358572577111947285017596291086642231207887945257889937469497835392363612532535045308894793700820997504967421847184506837405787829596157109573088750031883038029166588690432630763529510648873338448963695627559962372067786640017478407740073012542113486683215158466078255071396813390510431911254224114531163735871225180542069206638308983550494611163761565751333427594929030423366178630963493376469179239172221522875141397137107020718970995089658490161024279640965459912725388565498878895402524297540180128755204322781032555900546734285231910977232359934367147911043026794697452176087906618189794269592568265151848176077460128719783859342774456895909065519732302148684233272583729008672084573973868053828672198677083309222780362575505236515701168029263442576182382375683722681290764999549006970642240440840573741457099853251618417053229131035810382858380232427719808362087405338459803657731309882090256672305739108505262679568148655367327606795052135557268368414133044435659504259422188360086380101196637124491331337282270653612284901127125277833367625883232954350818996984913983930563028752887728658411310541885705311651963751368439314963917617070648607609578088217962901068598849208428409453375715898926018981930747132563192570332015721452962489433193367202044897669518216927725360373178504120904109088217340917916107379746594217596966785527474552164987398126730554584910275260535057821718466347950278109248894619473827152908539584685435383663342574065385249546571198605115419251786130877650905974176692711149792881846114555570106186891647456398062388399345112846838320079524446175152266554538379275486301717321536182796031709645007650135199587473665335686596292932504953650496741201603978841261749023046415555628643834230641251504219219247789681477137448054367462236954273868913665860194796235891283976942529655712403898942225730057833773359320839716650622452437864292784068717406652652003937408354720634952931984741443658010162529222979301863005386215057126964820937170523621048585690343465465564654568919266154792088693681285418257838812067635999770323096310699773105458121506479861605600070545642649734221765534274740633799093773198593449177956344133778880917841057495879111754358126022562265587600616493429132310783439558077144066126190694198752296661452551351586320296069128982504689715713399384377497284053167780025088162656409841622663053268275110082050956781222573152015098521025023326473977744992892885172592551176989419214060810966117558715333952833470270129761455767926485817733928949088168362458511464383322321808537848477920629314008151948798576395555778310796166585160853529734369284601604489559906914488525855356286545288695255465548493433421549417567750585614927102299356143402684449597007034134583434175047677612222786683691174814133031524659338741096989513653448592696721435382486008983273713862329396912036575787674947140801209267921416197761323187220651623330004073456975387933272939138238484469692061766745844473941405095005609023006653874044739083631911100984766215492034048855281514494451359643426497997030111461652682935309986458660172536870882205111282492192534618753263244015935696879484115010259581898177640201275183468046965540224520603752146863880224051795994689308625922313247172136206157602114199830209513266741133877011856135801650555116702247683908334549366539725987897245310637568342258750915007737668415330418233577908462439744797077209267990867153817925549723403568123456955221138836450862648502874090411673470871742972267488210011348583921064838790628773606191134546736871434598868275305244449484120855255122245567130556225270545576400377916442921827654219082784898768963206655230456331346708966421358752905421478579952570156772363805767640832692316404728049544279018821905921755598310244375015826302612942456658675240747661732009730330948527907507993549958553156453580501331095199570087903080030335982876996817944229840732247711046396544469223321600877549102966531699977771609408403783319361088746022912162202432950300764883060388336013916680596400219311962000738412011762396965276470011323205331744668555616824332466936450087534776737388182289394420652181707736676473170777068412176661333160062795292894059625695129537849491840567393933092011624603724316466294905302780775876218617748320087440480581296523287329599100813056125183002878232489142234857443305307249275445337546624337905029292489207584758319554758097605148415734777406475281727541107351450115625967564652713953204183872137613730243326648632966580267090677007448194733193288558304680079693953927732524107183645081926918727224653153187675325849048000298902401812992443041393867668791931192797604255879342177840957411174454983392414097717546918048331172299535683150854949814183475920885818417050580532982602495465620367879184751551432952159544206326314623941725265153256306874184908262947120283102701952367009731971742318958264655426357952427447234880613601565225191723631363381554727542537516378919286598410638739797701872200300321425792410261920494489230155736037920015731595736276846816897493862360354152372679314548814093098931275663338434736331478764340336572324032468542049276258100814710462633774407491820737264858474873601510560923012297464809032855991614351884170291422687419302186500276562650208642373427450375550692222908044511323523539186737169062900913148840697568032007105487927508368091287612062671369472557087534778000314873593215991493157652685237854375389006751220271824457818030793610617037633502888413659262788198308313618273929280310564799082285742328225725786480861503959008334320490382430129583235434499087552981403056951975369768159861918524030322190706207782484912595315979301132746093204917133418943166821075157938185826808151972283179173220226882885215980096076733725327286974937234572734436987691741350366383502220601218335419205702796133182672560795673244672055971491908246370545897803907431586440413679096210929830222387807476184212576088078881753895715534696067556441544763715686884532711973760967897321945183653238558090150908553117025822163554414122251693569979163394928833367090923689474446438819939361237286223463431660874931737542085527977303297464250488040676284173434867417395338785529278471834526553050207155371501507328368723550633272285106651389322512763477396996647931671204312583857827859250140701603498338991171291444901012436253720265619581504068190006020385723227028700432128538481182777042749635996844036768538608255454701639312389307190838559750149274391953737177601302890018679088417502401460368577786749401063968345202069253418925444109504853257941602384591029921075191643832905993223589243104261214758045271416717205367708820198942381677367964998623767353294593891190547874541126127013879778088252161411577626059706417758116431316724604086628334244811710534228196347993468061623995902066513938425287949367275183176452187236492147301745470169001307534517686704406346099739417763155920465428759394166747143766521534104882287963538739413253433625569734931782118517845886896414385969540216020497164321271802844266171394794542711522415369156168284409924997377890662185992991546366556623834330098742580742171238364637344329328033487436358505114877048824830656628190940973522415813764398742189835987844773468928467471783898611341066732783877440764688044866769792978243214416117097566199940232768938803816788424625365284321967640053834172447644386837051017266612327344394499896244239191679882602427718404643793940990432409014219135671611757474519965196548769740420255372230132630978810129241899181762254528721634645643860522721873223436530661908585874463128626527781818857394938723879738342550021323009826744976191101368841021682991534833866698715040124945979133188667227550093058307027268207060582552721740149610406150804161746709287477745328260763643641014286194086092591135258358328054149096122447184379418869721887199355686284166800378593291321496687604098415527917113790667090217713471785809826500645120004616964819270597834558201200306095963076950337948107915674323995764691819516470840732024829771361782828529408692336133661975251578297771912576655658037359694294272851988200074742902536515699225188758231486100440471927173180016947992204861054369031455728334857350103146015179760849221346216742472790848242686864545108714666818341048679105044489456361462788127103632227583042482623867040459314526692044258107005138788331820994679816982321991394628845000188597411421306898873581666004056076569631324957734255682188704413598780227485200653300530826682857169120060380549745362139400760637462743922840908858895142928637548097852215356427167568392416001910052137009212004416756937934784036832699875359606897175746845696471767243038497284156358913051374474118192941324835511665873092968996615838257764645165408945342799649332474098806732561135227372074116428695227448974392755639951728572431755783796448483246251592753979762575239630259383840724764041095393019633657625723555939229941132851973471773029557723734351026306472115398839747160297625884975722601498613652790072172875738329443551892882139638982308144639158241475691939665238265308273358211764354388615948733248770490453733949807755101925961980334174098986121760288842484408438382729210361127138066958860750484622230843734040628186227243102899314444517022410599377630926921254114452173218898055539253489684881356501477541885261883636996086014012075884713639635008679077040599710865376670130057692679769885523676222603801705869594600510054515586610888376972993373892799900456867267011471675186596375623116425851048008020297808923475912963507730471305853031397699198166497272565731750150295115075230976488331855596839628363049716634738206317893001602883988346401623696130268890362807550278000012693597522497654349008993134534891594244895241811345180631555952237271654505312609959402350810719827673691054547949184193630716703077438047689522099721863419914018360583439176125638845109121862757622964822420132923479456799441645708552061231417049286803052297660780217335091768026111423334531480844589416993364290478666217235912981859298974571446534769982436117267128331035566808222246433962453686160670399254268830939759636866215816979397775429590466805545413312206339884367399591465903816748099938679631253567351663744285027233209252735760289705482619851630858125334986881884824108907220039136308265726981179160144160925586662083412124191206413139680747021900075774179627387968214372057973413889947735213131791742258326684604821370686729827835880144233742571794930272282064988524868526020744144711429378338452076961135752857606890126304050838807632071014562612089444059481767861658950556362713967811233647708472243739404489948075823686022197977042217537254845909060492385529095125142248821496802921597573450206560646785832172150286784431221431082216273733138555957294527295811585995490016895073420462145356546534587393860302132863107154284693931580690560050895464814759456096814325003758114256021543339882658504333261659641630385988042423354227995617216645763958917495940785737439006357133587058326106682676045763151858584276007071757421534006650279916194564082894225972289030177301561025981930376653776978544750581666024339923739281175591524283491825015730750853806616667918292871417195776902985632761954478918197658043487188830721550120582477625453312662857510905733459873551942981294758829727696161522751853058797813533737763219381036320934504205958744762851954490810518597599236412308303613426384931296459847852245780554829067093725765884766198658255754872066304952956392467661513375972713995896556754615557723054200399468690502970359483709805041275823589257705083534652730739719350225886318632689665737901059131811337275846425423306269909113227759379193162992807331678138915712996301747981237403270167473028808252121476917374227107749167531202006926963150745589702971614629378959297475575244567164607377956256204727902470755018460275613486962962905523499189366432372129972652068188176703222475441810350899532627768721987754676369785367793411398090801158953264508155781942806830767502467619041824067687247768916872450256525451905136268462202855860328351345695029708002961690813213956404177903564174363951820739222570069456867067560150754444634680250424798691541597007655062148738282035072918211230563832241535111700235493198620992292437727923125457460214068692115751420409418324419524789861390850932198111083393825801601441908199187900580908850434341849100712458529268938047547172213701463574278289236051727704197958094671252044382812806818719547194823608677599632199192099455959955852840913417912746876461051883346649967141152032471791771438381712867585141872799637921272833179852733478797176024801504946974687866962129034711015752695276956026387019516710741919672051042672570361258954318559909056797762008415693219894472688659329098861386482982009155660645082174021955329789117984229631902063036634154401502392863764403993372617885571527462684197671598099993301174576533245036215039638207974873519301666703788862447505564530264087955459349068640337930930048069176877769091018664835037579719943232370521184524244754056002547182656502099306675272910268475673122920768096027007730453315904361042242809050600120617344112926719689479886488307924974253428804118067724585053431596875244971888261576675516951783895553171717538884116808439657543407234034134117535483359122543535758702817602260873307882064708972502164300908870228453928444936555535499316317612880409179750520076216693951143199365564762155539030032958277271370537339034708184472094469678128747000505723891188247960369764778704101102593455513602795569845047836956766415271687388684783331107988025895279294991808716398274974016349187064069245358785053364374231965477637211630640672681586579967349918961472155919337601314057689185591682421127282312412490031869112206796626374749968323169951259381416257308553706951253889808527145010182143555840238028822179064837110168508917196335129919479214051380656501755967892035496868642940062080226416495798909270562272579767697017652901565420039557811779602722158679283099157346541369234639855781808406350045043663687525873426333855508047463763813891227797168724284066104143613515024863842408274162332281134290892810770877794501582184332994111840982528068444285068509406437848680478909001015031894899482522650658071430087187122384506097748643583505692465815923127898416191085470234240080826780518271964686565357037845170378482681553747374393543373815150989847852976852874108378286274538448344046000134475660644782107165921570852388084535717785289881781341904934661924811086800912623819493389014577497633555252317889294032996961850416988481763468733789032859288733150115340468759564790623822257839140553653540376841604605996108134533058256235238626911052832381977821212296264582610751119368061862517148425818560092164956662225153642567384938047316420709402628198510231075735285605459647436285444038182350678683940201989988055120644387413336050541789884946322168565601569325902303615073147077158911813762585750794413216045013182629775296609698622912688973337310737758507721711239682095625251555959410258073617153626502403199234881314319878429746292821198953728681789920911821335906477505380355211226127464225696344829578538520906198288411642057720304364238510125294342638045096319214358865391087410478561232158278432631169459677166555376847588357925610623878867340401009226499207482180108471135453759157889341491517761254651507884749105910970711671243928747431484553418958789352049486761545813869108789755747159930333834436498552948360319752726229650577882989915572842141722184428560317581021335256090025175414292775582225306734341721866906332378501955770959260251652185717137274724979069203758614793243053852054766409333133243833961549481741684108206892659339182084964574396355077101003295103565064415431985894761196539563781927752991712738223936569523066166947200411525179766552918848987040070122369393364462558799725731500752108998352611555706304115674248188216464590859584857390449908787913123909069493280879253204200489550133002420109552663244760403987522054349633200630997493277029434118873885230317021950383878144818000322419667698219647133601359359696919557922211987933129500680999002617675801668512398118997692139866076138019569829882053015518252230548465648850119687992481418363014316062072164683095894625273993822455488977038579782008434744958438477762204000025581892578855334090345865154060421353360549924119922934376468047830628932988978179882154602477131010613261552976882379310648050620465461185640769209590773167017542009450063333851579612920683909342616018556286285039511543883057460395623733668201056052460642489749134612293558972339880242161912234378245775888001524093839303648431770235392733288509235987371147283423025515423738475861469081791262747468923589635942295312640810424008827071657534029147208776986173630279460919581816352512966133368020522716005766924574390777764579570759781750822538388390302199199935366925020573948826374108449895316865243025240094664315611591565913832473718974595646474013805402786652337787451742687316967613631667599481886047674828180937671483732893250451850375025392997000417866680044850687194610041802555884331600178261751785308560531254439279026166167015645631422671969604058945014588323916973815237502577105525758901713892832540439545842429025878231131861955833050941755291744171192088636922371064122804009781706932535902493231881376181510390718543978226440140510832663392309609091765383814305860497067076430480340883048011524044220311387729984409158651646498073008260156622859599872283711973782298005220071075082848047249491201526017744626758137693130638279000000078548089426319138318242223417308130203072619508643208320555687825575564344734800013373483885820723051525752489327572252615412137465308185812382024726418550507730420676565792375156200426328816912967292292802020657850106613858611846267299504225129270894301767127888824672991894607393374234923095815129795971501798420616268482422559092525974123542432101034355103518213886994852676213335179521852136062169074530331338333411276345182776006272287405857994195139977644912408301549575113464583087588615368968237408067603310373262366861953379681137952061541082754790814860721498753419072607775467722620608123925104170028874847133113506582373689521644436866368750110583675217871953896008002885789160678853444323535125662748980955396883982842730256621295020467173767243585963356563188151847607676792600805024082853197657813562465209453924341312195827935648959946033390347670214186442926725897059306374452797142000374763643083083795849703105312890655971159135042303616196706534538955249382760932482608044857547044902390709204699942648764653804586649895486450171084264148116438479373293864036343538927479537351687005554822345843164343724262390806861611004279732486663982335921860213142832312359629963819113306259105839447666059602358778012513984074566128623335398951012444603829316409087348989250253693204123234278179129017145965421247358391309286501386729307320140153928935876840493203062156980729534025086033172517804559869543589860589783655218646150976661194157681427862473408036954467633886124542248026219022143761354775060953274298821681172502506487060927613911684828419830669749079925917903880532910362163003076321875406307302065999450937489933640866783552736332986850617883676760223915453576717247317817918560552863668204938749300220727450825104383687096830742243171574500568566273434675641732986281867523579767707483766769797446043102859198823285699694966815359478421373437455529912668650764004036505135958765388165281775419143353227517966992943707564123055583655573001887508788291673900100891120325627833187241610820263600716676308473191124407639724609806268236570218467066867578928268598796402945479499875330551516143041815353968999933397296192926396508943460207432837022084369992860517737745036948265137259944181937549937493126484908462321954865608247059102061165275629392487276222781181376723053841426147945204060556338826087740257512706854936723167915388285889490035403442709312040648496685565217401953790434910281072369180393277307258633314116358784392124430845563212393982682264665554594561282423079490084445001085753706655793535035209066675007367701319932532521406998389677537019127224997747825195191558047710921716646452888193115093169182107083647141419672652885725285412743496605160454975594624400808310113138428818024134559315931182375451685355280878174875541705049636304072699158109514477243275177616430434567577838028690734194673602910355392843394833785940338637470058231268218817203574446244380981502940516927917665780603253405645972131444921287082745644458253818928366101929646452198589814081007820262942808107751317825723907017870967467250521478156606121631076655323149699820407965611187178777527489831804970253828328528540712005665328119881831323726658327130495799966243610708315743289677228390521696080957321390844236957127046432114406563641462534500163154536387375698478304242912947705663877499454447293505604055208813779760431260069273424841498860560530774743647740197714803953230645964882299489814047451838685161178542014607420371176857091750185256335093439024624721375287828735644684430984638440719684883831048263559898842485556978598407991226158339973624243673082658442804202398532223166873302980844615687366056052148930797974493880396502121966042091241936110589944168946849734274037790042652617077736339847018115221460938091337836286790392237597455460022355897105774011321177910792137041644927788311602076355977169253821712751023586613798973629133570122974047958672869572476811286507365421573032915785472071985306041845124592123210761703547367160636149290324963003584073164655013939852591987371744940262932622002714195224673338057141955833571173853309876414260090685924998683532554437227693011471617059621521550748637351846151162746865341811141127315953357448578448622614735563934609967851236170565400623595376463135789288868312111993290824345110760300549808393253523054831353509783898301626949530117753440013867092400268858971244334766565493202706862638328601444248934138983437283768365844370856046298893632436536912500589638912561398968196319887636434866558654512049477502836242792078760244027182236814909123808824968588751299015306181316684838690760129488159295273042240138193008038074941789168376880261534499222509564372094516972706334845881602586928076696956667432018061343221330273621372054884216018236789161261776839781561756171813399983825943092704610185525409364125480602058448793501535193478990704789459370598378026234010709575806966537165042640318161043875105556800180450740666140586722558432434324619791189345006256051235534803864696214681466181001791068812427042922283122262411851599105352711224461370806970637233735260816635985872456743366120111020396144100117889875996160508579166981179524064671188467786559653170753504217862502785487466789365228010713380651781432175821722750688022870067731618437689628927396313203370578184914659519982214674566571594240818289248758306042592383958473135483178769160026316133655647616399014961633075931473232072767754389483176970245446057104016290001559017299307098952679041672718847892795904998212918088246353187220230347170153445911438527001827806898969240378044381657349138973348299471460002502087051496549156291483876420353600514104043085687320569814130710802195944995823987628352327301025511921470549868703021839967688832355223848585370504416344943231299748222002266537508712838755408753200697766296279382320639710190546107818843190676477145031286014808671560837776372519379957118512384103143255528702323018845366311743262944240342238307384212643995292800468777291354924305162047501821272252858830552641507047493349884779215969261280576089987910342380725413777787106446449699360378247727417846967166086736706355242504268722628561652248751778245499113559259391440688180337263286728586911455656113968805756394582600304257603864714210504337316954855242907687421841709418333371303137776258012655023000186932348285537420430443193691727848386577651242477582642989697882614376751970615362704959535836084053836389747373158122055093953054696671481006266320930025610123306965934668161305021627320425964582140175167982598691309818485128998944720765369093027719198072683767754741580514600032717650215057617878206649906322273241864444379144052496633891525869448526755225478403548874923358954338227698111432625944186979535227495199894544900431419760104656238586961868840124470097085205297261727637479811801903546070573406037089892918206386026435695108806976018054565951436456680998592711369505236933872489363057872627389481113490612593286875125481183976011360258307747741893111117383877824514356759138922408999337624023391415684139449213963719360173280157742296525144939351653057127131390606048795606529481178524165501593646530714133701262607940414769569773299810979281343078506785009723922868666602826212502667248318991733749946755402057231080524139394456459149493850056168790700494256089730243866442998910722765989170847255314601349652271090044360443203291048213745369585586669513619424760700300090013389896850124972762414876793245260607331824338551933729752836459343361275524407511641140972975667721590219952642050003531675355223735693343235629637778839114890537951855722263841743190051180600954346434780461839270963171346579574006605412323415253557852882145092939996736451395614532313915752516344805101588461646359572516185445725721563535935401524045805706070010661510697587533311579107937444941370456261279094298911633556496691016682456428710185669947872122974882291245877454908948510324546611295686533445408779370885122230506339541055660973504932384465234880690504139309945021941548713490603889549337601952277529893943285932049233844293945532568166132980832845995532650692210033888660810582294143796829447134962373448709147012254374760368417201657103406849268465310704433519235496539380409786810949793180145264750568768207504292154872149562476469386552587683659226990436752711002768161747660532629839338232932375965179600980810683828341636696621411974001195942602316057660170972431382896299863635162266261811883471828491981495464876142145925828347639497283376251571285887871268764129246001397904075771853724768492237083636627761905977354006271150073963034394671385767625584920389050629612168087393455138500653664608669327777933138894508139026322386449171131556168525779441187011521166979610571409445752875902756335030370544689717137744826944026272167415010158470691293428411181279965557931802345593017874974464348811794811039643081628201547228679248255587088405391801073162215997262995250843721851455553534511300311978623956998204058314461553688567312694409142334854396590257785047944983189300081573262570624492869032691518026367284634699750672988955305495991497441503560721547816839798752457500874448873988784619711537782868629324857400501461414109985130572828602588458256450523255241737362271123146287607936684922743137747453995707991122062953870380839799816313017800865743675672614716543043840285924975895349599673836162718607248010111781892550833003690278632334801265845592052039493635686544715731590377233816759028563814713428551349981620010309111362954124006721855502431743465391462872708124763789091528743905271393645570325619005099604770207123113228005337991543654226779818395476485940803155101924563372562453425498978431732482346390943925814966375014072374508722530368061133013721333393454671540982966673297935714621332048886697880400146511603202658740736849204275193271129583195201709931207208104953143073574943579622425476681071967814349993967905192783625040147799363370635062153621731247554407778995413829331183386271888725206633290197697428373200384060520798104410281541295657580458661163782520160606024505388968056912146693121737962271810883705860320453689682254332473615461123958571089340559651429958514668088340801189981008351375669773981154670859573343976675524938659344300106174994546364713305695721383468988170812656691393967847743081439836691274472548914371176979747364504337581453068154166409801214975871511012436601862962227989795657318869353763225775098943868634664554257238719247431227389605935994101993057085984305392109546141923385939683748241876238360687286757492599976526911338616876176872613633109656267775130365586141782521802503512830318206760283727711947230317859992711035502302790219613871247578373140213744231773480742042400567853134161033471725102030854041367873397821797434653448423498148704615155379126453433167989634537346664388923757969145472772740641407643732247284205826417676085145247816463666317767064062045055905703217463662160125449207439879914606354308623499940963699945851238411174994754590769773271702310032570280896364512212726437861200643564602422343034378231904246901088344623070022590958968406356482292904717537440255524314921478600542738227177928034528626279201162909679082693142773665638978423428913901458650200718502812257187433284360417340006111722805692487442073331037901872357000540545928321631845635310476866879774960438624637635499389721548154807176256087066889542080308044914245489208114539957561739204443123033130782707547814271390565902009709790570884950269536326948990233871132830864379924761935766099171949686393594907880838202223563657461509502275576409543572928576190575860507065447798495638937421635627974035305067162521020325607605590689785616706600009470648365892238207101048692968581267958957800217108186383381861225355302566517767008548026649888593765988060581277192239625759453383843493392286646905240737281422907650600625465515743438164536116274288162674697933001486116603359077761125113038281063264247091297012192880714162348246850286574271157076708869128966398758270584173276494847503132309414213784973678620455446254862767850886535758139133378512908809260447732882213461712446079594815572312572381221686936866600790066033597306992428123730872159056828531182968581125830083090186629702173414419677533447435897160069181609017197832406642212880796224721966198386085946658929477177228696082466737152578003663944490274026782236419289377764256960192412047361947183233567342444943093045326498821111151322088678396529281931296480929766032742946016914617393619715535235876550575926170679692547176481610042084348831204205593784642171225342182514125206940390123116148466695187667470622594572327187800051085548605423269743644351776587109353826428131572353358881915357487244558066410177083854836360221133280592730899826748091519073726283527196023059095960960453288881488211993251074025737391354754811601582203960246612550460808603935147940865831300243586802539060361673165506174007166397042004505160172675699931886055567134015792993072624413151602639861611280137375357685316761548318758184594213612605367932397193051348648638631267212789262044787776893892040499391845712283994678327219566034164020681004276183894700245631341358529714352342124335624663533820733783629418516641691450412582485289624380958199607394564086055714368213384314566419408656862634602679254565821397856620159248034277240782105373081020444594929510734863192147611853665370862548848866508411886681235496069465661324860266058640230353205682913853809182200954741646144152875080667983315876363115737448917271014143491401864691519282059568354820358030937205156640526267900132396285330235214981896021919326945704567693088006104798955692543112595951134349166153966714671197120824852841939830455371866378305067209841451614084176068571624766777416413105907848689817635898112212589512153856157842984804327593830935689200229006008970628671363779059526787741398038114633711900843791205714653806980406210518284237259838768771702945545747606923231135352201484815364224063575085248001365760384413955489861476932778023816224607527042215574028953549760705168498431114456189443630002950712596474763851575070213741618600902824880687290601252888046998411646986275985457991552651694136212677377161742031614836923981609240562898404445458606846710958264031505284041458525193859792219446270862065612832696656424308392779393825854728133298923480684304873411921943605553926639052675926641658163034948842870462052827935425342103181807459319368762213476854688912547557387833524232996265283522640181801282808282178724629895270628426645340033138144262977147871573081289504571394338886501437245033504514305479541223721638173417168658881168670589786886109255353527253470467639166234088795072759304240773741605034000838781210092438607415165677934132000200308941616165163230420880704603037143713969793895172128620181563513605915869797694475563150056041383115817653576508999525641397282544756087690633350528771624436029359182954492635344100992518153911023220505264148897163623452753971887486973229401168279153155882969260916985945700349373678568900482680565700639940877619313039643142476431123687537094997752289569429972233614091523120776287416125974757014047952398427551716433256551306707492068732479895783571738090343908936866133298312127891358033511918811574933831589899455835461751878402193990046738232956036426833138664472540396122830011259802047669553141127010932241496021867191134667119265272832672893508265146686705827988693059879685141894273578518483180172645540747515498409359485194727571724007527348280625178382669318412032173707771518344741293915583120255487047629937874671344820920163617339719888929046681354307766019706667589735913014201646586431694620261390799009098736982700819639448675653297177419181970630435094100624185131270646696132486997134278862381974430319855431849638206710686534000603542967443640609489649848312331105533402115014996811950019653106781987051563253578556872509470262321024415624354803336694617966810119197759533525625140450806875673781794473946677729760118680824818079793918899379295709433512148983369542576225202984577749926650633190523459755394642147454433075902268131511864435179382744804875894748949243985691814559235294212064827555060818629183339832495141231837492991730733266769978907072572460150335812017080859080128427829251425960248842266926698295861749305439871776171785485322990192223148639096561218407926956808210412944413778608847599699501418666850015123311590590654420120419612503083308561956551083940697328664762796319180973589873600420638223594935396155101150404031262914650335333131281186775486081134739476180550288270983944699037317675373078039502021140555727420185131189511026387810065449756070644749267926566204527965125129420866379991303562370598985173705531479958692781094894211194013526512962102801390516541678570743182949899598671119340186744618554801357020335008246893872754078817172894607911955408896494700358481207038518653007524692914762659972669045602563005675856121551622988733916923266018490683978983637214200232417991730234120146215717965976572129919307174116775603462398540393298783746152473378397155699641861822024491263850431768941141176943829492969290132564115823385476803628351808191046656999819642154320126591229612135889821563005328216866832989257029892538203061657859843860226746768303327783608075375173551166297761776953532585841187178817476112149164835625334315804733646152514780159113449135408026578149461683434808475703497269741444058612623842710381003849948038314353148723376141022953076457097627193776758424930268026900521742899360301062897523633170768923726366829208330918219265795930929045900201448954181764037638518741001017077627762059308555878646190080747163150303099200928580577166040044338042821184500775280418565878722001361298913927758059753792027459039351128330930132241961219484169428276030456690720444183003902410137850817481575071115378925290932553256194169520595600482543842216423676614200631536764958366049425232743840472693177132931807410793782012280859419742927188414157541151178966796021890683103745796526226560341119285397600105414268713823467954328277148524884478069870255582220654088717044485009150955097118179508019896619430911179474778264854118358219585552661388571355751030882596168219543824754875063846100736026778084887375083649516927298686966742988743901849229557566782654955743930273737015125026549521937392086128721717935813993227207031023564141903722394141545973528298229623600829611326330995424354250790574075723134215224746403156550761483075556013998338232698266594643605539332024448486507619039943504948068540247891909640567871624162252570153949387933497252761382484362139209911139745483235250797078926172662475138862862316688225970236724930269436834159277827610087805707807613403344592301426525846060928974602899194637891650460794065106528159111592269769665465676830824666775954432933861704158693023342717451526331484187975385096318516473938513454623938288914977056513570540205858327395326164515366076635469315568833868015376948469832083523979556129776084157423817730893972303074523971634347173176699148820410760326764729234811315162999346841819154174297786639861944908066020166883579997994670963023320584065816796239202413867392633952667766787489524264439154963118930481255866340142529981696613077201571698897877628358307722387627558783444471383277684782268797917645544276961535653101746524636288974584016858273208963245786597027020326358548419183930505679225233711778430202747020307935069564732041114874803096202191139127251049755919145950715303809624711034226829563225724893227733395910812256466836650530544239725548253090372013347898801336343956186965994474878723197041921300957027835791170489500789283205805486796450201585209057598571995568693983067206995808716280914405116845896385719624710745810188138372501521170405753548068842245538520205267930167276623091324848570624942891630486371847437082160757354750820714249455638172162861651819554028876234310361359553081115279276351388595083438430522290184595346933692328604517440323331255072940065771907030967871469105383865847537610063405298317500788834499136746246682713248339466419566848761037369612302516771929586488580804436772926737059760093862558330388377129153047297487133991959517851393124513392751129101197678070084244504356218298171399103230271706780488784892816186779102959751709144973783325513570578105733372684148534109185851822216135005537117294618398927452481334160478789467259137568154196111347363338411584466512781063812210903669652454864811679299987776003766899438676523241887117042066638317145975626858823931981701486709622569231034453348372982860300575668313046127643389450408239451255560833864228206921565681761187530640971892591540316202410098964320340158395962238764359824728736706952845872703127507618911208151732676184401022030097307242830865096306236481739612871942650027910801639489486858187472080587829257256151646294217147252184787184405955012231716121793058536841654068390052713337933598414417567168862082289584118746105575976860916673810034631682590209021225032372737402440733393063061297599404820512959858246418627987674733626509559407269620186359589031690921807973840154130655340957788574020436915030710075068834921171251068030029872806714541495622336261423886240240281105004810938816357740175001472248652091710353211595180473890166660567203291808058538638260584312366624065511123211071410791247094044596132198486565248166664631307068493250533430235398851377250641871723630863809430601398387697914147685989463738651102063143466769788516593885543080040392064373403812901369070492986168683293524550346388873287279233519370777357693107332851557272658718004247531805769485470025342208162415670773368466975053151556576369950685800458343382186250332736947972169639941773288472763536215857986450278844753354905067814951108309716081039624996668061774493332322852701429249688448207138356669824601102189483471437853450080237993104850497401073286519264158186203363060469270807355281928046656355066091594123478157287378922280428476576487389833153413966633901709282663041958295518969338646172547271816359390555278713647647020997690300191644712901333247040941975101108841201675840255390419540994231654159538807464188155753377665008502039178550840411375329121799601841300437209336702519471424772343846275388602900854172783846893390533519814303047917347807053601516070012807291782392202422243925112402292419407715051116817804152828428165779064369509461864114061877957239977374067956303423071587460506880408586690919335250243134513378232883731574447624161422727265986703342661039876973472184497026274832284806830343445903431259504689787340214695369906228504642715415701260583527725321894739571060285343713789597458372190946639281966651523091975662983043055506895934879372056037057055256028354982482772566008331333265142691738740343296659223987871256945272234601221380859836384390147885779458266865987026297028955398441840901092132089874536117880918118282596897879349918970972616461370626077881271436230166414282595032409098702271491127594610381543132287893213951413589153887680957877626163015389439193334049781741331485642444320016615536814521540520512251617838856210532078713767212453713046103690593310336395093813943248376265657826087580008543705876983160590452433985281950118911692404086171003801097522895510487230869432205554598756310812251258607474478367246115380835321841487524133758523917958239056023843055668500212956706147862570190877551045729691655427661013061774043780645042290469200345669447088983471104709923900808753642737723597424908637441335194108523846616387937749038128015027156014529240920400815347213292343855389393960224144104590772552005453600387754926246988492256364236438121971670243828149751808196828182275195782807522089444156899009265671910124448283961146307343887531832543484488528734046466884135712133650614533995044865487901446003010022944851436391465974105677882271014131931349261031836334021659389048260226422323347723453664481407090340542734765700133306203720171213018137493177737231801095907218389903451887101655408815537457341025537191233107033659661280278874232338214783877699356587036362440749216455191678787163905160880852116839320565048009070330620929783079825365008396694205840360469010372737190434794671520771302790639493559188430859272994640686665654415313032260740788156828116378587629439513737753608179024620025354104568913843882552570685098249691187475346314256460709397621661085594225581094424159594169871006383290936609165350614622822192954120866114050083028484894079651484970018071969528884627542004948769862525047669056858266700724165311159366867920691576310259363266059317205374304902418061288143877437979105751495732662921464920480928804775073375008242494411086266907512423461864577072424620496898539289495337314455624207280631273278281726776640742065551934107338180150029747975428452200160037399928317558587293612754825770763969830142408095647336920740435149251856852163646782679356182220168491933180101882826840215280717748479255567722841149812582580462311465185273272568861026021413384972980602992968742557360113969734351271978446137151420976328472580630277330852002678446479042030513883603270500773864615058841565616273805837252841176570642408884744373731534664826542551559032522613365686349846850762427547274381536040633331038823356242538269151850563174951884744076052827096083763066238766370454605002883362293289124053112502309763748173095988570127162377823820367466671835125747757703393893927739089789981869314352827574680712598452857490326410299945974981471169141667419727519110806125446325236912868670378058776734710619643425954533649073222793604871186816877125297987033169188402128358555506519606008995145283065116822012893651406917076190547831483901609377636034786674010821403808096442605613457685613947216362641847213295684752341207840852783237264891227831976672570226262922011587891253633798205814497957977113185285692627809696138388260760427890680801515999755370123294082811157667080116768120458282062842747442536402909754697710977169522958955145811211785541276139060901421457422223388273133294194611582591422429853772914207359278383215665115529946274351871631556580566053161616493420086605587728476827659522850822050479942066972755768629219374833987302207890992873600768842107478037787336434558041014866045642326102693978287228381060257112611048596544316249293280949334989151403714812403085503410806869236718146908515972405588730631445325291979306694751133290953028386487808615843660033488291116122289592342107338256271696525548355929262092745540636617055202650799118314993977135881681564469230414964410998351995312533148494186206044933364989504019720971727952856043968013917820233468101410575751566724836387697463768193689758536159180705446124352574435342297130028571554183991245312794451014440673441373521728568021276929020006543369238306014205173579887818844442371448891859085678646947220745320066903927010890097608849327014120287995421537176978780070744711034135316964763241980148999628713200672827023635181541380948606691064718219520429042448506410468188793926902588088680485500683928535705073632989598147279957500097477525228800284215528441049357234041473355650860975445540844355963346906814167360313676066552888726656143411480402182418872092916523855680054916258049684682027190830578470605202215742938582680526268870351306210514018585283968139125544372674909335577857229719123180668583766349032411294806300415436065900233711895720939130615671845103636810965602209984138325650622936397336227938305792183526069228956215392293423107039969586045975348821039941866870509189131855433064324015182993785454843607958902625808092911996420077334949621645494544009527018250908191037054582991899185004626181161384682505917431707534610158198768925806825784623705759225071072243323110156473742567917087906619988623141982488650817228640038578435559810913577591126534992670431436774874276760374905204898814519264852296402802845184326971461122488055441091717351724569830969583749674248748443801070720913079052736812568481340428005441410142932412573860446729426838031362045685569037322838469205060172745408881029132310718801722770071471782665729153930174628002067956849817764260425911396220851778515917827556572944354279599710818501865930877063329545286597898166719857025628240292796316758285873094278780483883840593968869670454514954988569919383382005988180495667590573782708082494512237786917182267529427697313829177215257560267120162065676713149043714512894147592461968810238421157128561836489980722210386767360731258641847669567693590928848794612698264375918962363732317997270012811692204148443024248538130715099311119333196707224250363068992566143000365668507526030940600439957341635284563201259243572965835106308728184167806226502707503821564408017371968912880525087784123026243954611384542160007670685698324882444116058919311267169086150391247273732617365029046781156064858711816560570404297122676926528014797546261423231780261786922801989714426821474023356369448657639209138943216751844073282943928224978177265887144405701311198469528696119010426695695397253227479394170592944995722081707945268568939515487748153909493267127524242010553528579460497916867363181451301798776028156536576431921323180288364502242079954357805234182731443147753944006531949986781395222970943742505577943106616344817723758407636556728866895554773651932611427276242893097164727895164575315993233558002474704662206761055788730079766444771636511840529509844705289091981695282939020325491218666469993654592265874455352389537026996137943902259451292717132521011625722050368038652537581959460385505338329692188890771136638280990558440315676656316892470409739699613808550157744894464771329020899031793533158976397883961378076987903735653593462723823700047436096890141073059393102014478046409763132823680900107224732259867925714501450754343790760905033625929923188402900146609355614516016488880388465761557168680068001960042703830120231126451359464746615890565560706823515492329550894573323255153425830339532985038345803708595279073080838743887747916331086059715871757283074353352265285571773541769332449389853573125115792105137402779091330090347479254948050958311992629349892099433020794042858844423366799036758421526898912461386849121391982712900144051407608603854712158001685456681631472829082546943789601177749363217065722384642205984457834575279334439615687370371349239175646887642567315834891065451179042964098013048659510614805596221363164653316983365905861146909146520509248703341525743389226558049590800272897883844257828236580481478414063264536682155187235396034929721391897472970129757428539707096568699299344486152116913049188879332981349539372979400346946545042333485502291803836378605365999496597228013076345027249991824318622624151096811058584532135431885389905273757202824680120929219983700374532986667567767235112691826695997901122357408635113770928120624927547514625351758233213449685401920535110764005379795280456372175108082802060908706210391111062070735848153561177368136601305171659177197215525673544163458956660942838769060724412924611640791339097729824052434736871207353247084871829654471779693566888026193915563485594646734773905763228032539538724497053639254345049853699261990222225142100738522009664627535696330935960377479666721289335627810892080860551975122505262812463737601481700393361446221006047938574400288939139914136380994290036667289549395885933198825137783305861027643640782237962096106845661557435752066929198380474640954168961636262678108728359770685916229988711190066912305448604603422600981781842857150004411700925155210862181669043822361155438258091513506258175657052365175141843297388883399552842945465951107209605333831599673891153126540329018991163047664092609344157498100478612105817415615703337254572100409460929583007184680996357048462116063578954461252790235885837953909358574810024947049629376437852913706714846772908273115041031976972480021107958471366390692267413476335672469175237723583354117093037776786627443528130167452947978781881904085902682753272172627695964782160730196402283487950078732773850621320451816867678616463637859569292584357544775528303210419433638454724071699842160918477749563495559458781157449967334794403753352849979927269865302936836791835699513876739218372301766390170666219043360636299661104057703213363541383553305241767642583071587593551656305449148731684593290366595471512791267049841728822446062262333457208951506717327906978320275406517216915346083513403608379009071254939867092697282249689228310717601101684516975929843478819706432599354401806135306460676245677306861442496211950662323802158811367167570063273754283158835189535491631118657070416136943814462888399190127198750699492505677925643153834975405758772197858131972073620966911730613653801072693338241074936014095544969554669939868963360053110685074669424039839580975127422758867900314411986902338124387006598897340348809822445673964924187724329075528095240524409773286696191816686543678834856458899381414385766130195137307896457422429323476376709867455762926641623735899884787747007743898862237863073945849469586146821446868126043029969263414396753371725672870924879486390507011995574200882750134319517161119944414475420616983059839693890058886405554714798987627033558204260999881071192232118204646647105399029371677219578520799744324730493772076857555050422855689957183613694969824040488663173167857816325897562459819842307737195486559874190057329632450897874773034800531911649904250339373269206042472024914582360626716498711992644437978856088784979976263642426044765297015178742742437460664985867258237909807262874921216084152366508775771695918962749864394345222958252198179093142573987997378036293505197325975964085541770990294700340070977513562332478294628719384056909569914521541965178144943996000747828988501821686005840959777639472061478055291229659242294210825884862469748904460521943230981591631850082797294053467751199493533847632721485964276500367027950638518718106453134810403983750597275111440871740673229740269528002198809361524457889440088975387234170012923151112936797998705541865269881868507865662916562300220383770061521191179641019569153094979792006420709498443198967080991965875662799922608628545496548800087698596973791934012892264591417963734724867241740125336209960979061401761040824286576994641252392962794682057838426257847823048759796774385123379747931434316202699153523959070346531143705801055477239305648663381479419940912543822667166630923980361269534931537528271140393761848116123514112668241796421835523010879381964665036922399295522050023071525298910835467054668865435929994242569053749023499692467803903383839588936164730135172917415447406870724470377977010336379890670082226986157368954226961523554430326997534697775737331264468333113509490967971536985630760925255474656077796157572761791966536807117667491171056962072001736727668607729344735792320946950358299258452996773856968562956799012410435737485804719164157920065339198573216563232447981823079805386037571903620740929840063485181173691271718143540482483835217825641418733327748594236560861124306987075958287240314482065548768724706414563888030427397441311267924594066493401537336329182092962473911085787782832204894112785730709537473273522408780087662160411437167297488056818792005923294745066520886542264562599662885371334615333788069701533762250791355324238336843077548971202729849223138937539880058303312181589087191651998361539162253075770354711005054778704529538703836157979737163780290112031661088043095649497647206747428326916309724625631234947397618707917704663004614006455038917307924473010476826592493344464671021726877517382961308776417466801839127030169860837686563697331213340510192812930075751029068768451610146782217352814666392907411226096918386727162318258322213590114530850937225225377056178127589404588609019136851369821516230706537831932215913664579087302181828097866390439948995565111612564652623544105158672562487783141820738979662933762694333786902119784013357119673149120644699575229186212489174066212464911346662638342519420881915553146588707994949566299805485739633205729296295080031901405323663109469004727621148448321458182780235547104556443340098585677008843311528270695793131531563541346804517462281853871275763271357534942876478791084259505895084375893158022269001081459477911358543349649617874344657957376729032910973294117859177683485068491940593657683095860829330038872813797156344709687112202575038028670355275194514731240808423026173311947362991288928755245245464132755967857087975427956908988329032234016797083482804707806212347978407794500107918899238671778233770009575041773431606044957194049444442492291258300803956053736435183821770087526065190611936220901928279493804370830060256401670036887317252570660215829690528227461563939714706961050950298228023310650625847516395065882672967784979613233264931514310113164274882721292012152811890710848462467334267285526678381660511862995075986602269794662943825741101666495728542469646936903650708260086941307319476558318913533991597214034596160899293235368119531882561371603833283973887427495472808544445764673905328929204469287365615982736452560392550520329671629437794945365449391578713700873819908432514980308222590509779128936676769787222774716020208220778376670052811037499910912324990950510673835933642307788363817877992664989109495608309019488368439900169480645963561048856806356966258315072464015326091124478251964616158545367990597750630864153148209638538908873214979569260537514137695334843691407971723840750078767912125844260152472506317637745840599496825761204840937206026634070670395982431544888905049445976631050383001573807982575841338028681834256256276417174576457101128126718749538253735971649280644312786983269839837963732544543916551867256434220587468650084788571958218379839016131914234002882871646797036555353228342670853744644307414409366745046841266530621199761851204613024612862108181085432036946243748001207293395867605091896602643378090034627334434369767909165842338161328661917297653552155006660150768064781984654882542351473032436516200012895456112322382632710239426198433755039677170942571327069953172719305239071551260393383798337967435073940399714030453929541223341042673230733147258304230260005165045211251847922768566258241226420588893934378315526593834142007063655625064585948920134560130684632253199953971920441189782921528729914227644976131856219350506462383452647680094622647215855552461305998717071860459864436806211386892150487510494996613086441775151572813947628350670883763431199722771293988322035811501628688821162384584245177290991308795937074761218872131655290697014482695102951463020818475341103030162161282451919430118214268010745208932555379930466935554584814841651543495247551058420509361083738437937742195490653093273352876440959705262114963398173166144577006664393718831907583756172384746119135333179478316391930062920330773642886579782002682524961828102724947141636990624166093080368892823669013484718203558488329269095781002710938690045804169883048022382995208189766970567866137140107016167074889950764320962294974145990063534899073993094485025062181632793537725938546144652752721353778561312441414713780615815259899358011885284717558441721220343856025118591748816882119925770145860279872893034096832496850060159791199117696398612292874795491867878143784373356680004139606947207978152738370345996108521369178511653005581756188712830438820846246588494211069175324219189221954235286007355176240608985791142251617628041493604792227109702998080687647808529256742472494197251180604488011086775901609106071620732650466175537008157265645517700507050839013014892795120298279949423006654809657121125399301681405983460442930254415362096325832955431361401023204623394937504258455611525541668975546880196908985606748596119146059486315760602707859419122365691195491095970056099419601625554438581983400626617232479329340606839044625149238742196029529880733163280960792461608452279560291574416917046727300145209723118218649740144430626226479603080232163637803307008180199381726925783631034957129926798132555974819997928839693273244498749306647791460535715113532050514724569081944055591603593456910096688972600391020862567786519996757528783516943141356203739794702567806011546971216077388619505313001683840262093151014587820724076950153893192232997200794324596253962640761076886439431067577552492934932730719414953957162791767271109176679196126191339343305717339928357189905193572004223336736624552277198673208833539143983268591258731404819232637452469332340090280762550508814848130101288569251604277885567867847176327743202130563540064343487518855344600453200057802330640019647832725874070907092206068301726570155695931971578376238253264354236672369704014818482293644653135530129115139346819457716705019203240087089224908990481070878419816661897525622724351221615993387602304904317158294643100000891850843175080848441770543775459376859744860859179170752448367528600953728544258458907217837217040652540482429989860743420137475169617686195564937408159592723364309114666473722564329553671246888218387047512266923630286516452995896741860667613550348904950616017936984460215392874941556127207217477839361276235212122542484983435282134364255355262640935638213640248134781141514148110945832540717681644852004068923676677636975763380890201923115598674999235169532311356889773875295832808968416585734406843343170420941704416444969723056497450368753249821994056879679157913192698454710113748129529992584148104968313009502433021508110171666636041423734683403952052517799501087825332391744133091226921208244908997295440697636555016686935822031087637860395716240692868371763301992979109641189104764609771801475160318657697158321569004651508939781813953717563664132334145852702716042519545734509013994285982885473657549597416481933968430898992344778617067734128973618000269668874188726594048500661313595409011467024691262161398477094958811895883099934813578528138865542173892024700844152517048081380398145693015035666767696988413059200320955462685951780238705601924814288742255159068206497736391693920262615882691159894024521514122442117192026815212658224703424697967176893124846042482181022999856276860142209595439567870438489615859648380076792915684349714278445095510272419166279328514664840048063252017702163835042553153617675526195867103874355028551327042464319069956289813220552030500206725920412689842204236505559215973814609364145178360237556944798166690748848835018708461136836504312637586694859601829955975294665440541547837414745073588740329659290558182279285242988981696085474925326243404601428243112496827427167393713412147642366742347543587321771466299647691751459748027586096606905998069498471319362978873013389892954478224115745806304929852895145359671333208435118419173877030120888720054801093611740773823132387123198418458914449892407840860200832435245995604927019414011420261383893207943019898635866174099199035880114190627326160111934645230702349286402001394479239919392957824166705263154092448167598011996298912547079870358132770909877425371844808685862414720763242730089182812085538460188502970560508280968060971910821200774707620039456338467237886165079682880573686718924770260714667711152288599480725331376000373540123325033435276143647700503100581369690473802989216921986937662946636963262926785465489585701991599649330396542330168262540394549677441697950750704958810424691982256119660338525440110850272387557808453747131728732232866279611268142108437985251907770963450406652233990348698752483877453832548229687988063627163223333131241185701823320452250981816114660556957439662284960675392904151085359753904813672968600605883339169833560422121497875736684310680969431960675129369790041022427708637894163271711215346780450326106099446102224628913877473909747377156408103630197743670042777687526405523360000857944582512684285266650029474936060835380546648789685535022129261595477927936754446188826070022986784020566206537466887525778965306694823028528066133477073712212507793548487382154151918990438824948714271190250000651761745086627705027754723962906562452838895203527607319088828815902167777141775421957785063621363660029750111975241219754568844698467497125326881759966569534550726103886450868068108717193399390751469752048152942393586052626215011854736254620795569253304056016479016404385924132510110630753154824246125339877349767280267243547751136729888242750830788316659162987667674071404326218489614203604267982170627329017275128446389710387272331554506701503824923472497282372991474637588534528090105189796564731630705195962397793103122468574932908956293728944220131096735263780477372093164630026977814960700627320692682270695669454959790505250956904988065798001047211958105866500225597452676816151037284796110838885208493481958876047848528034438108225650214634127203548720424668516798932002123442417224316741824862735836062597177615503946221489543334924949075205753005766550177623276231973901887758910674257334866350005537557043733123365886758103705638408761471820954388030757228871444650772388218309295989623945513251830843306577277448719940954328102993580898129277232677575103116252093344001208693070357231621853208541696637907962504932874083576453244911173976399660772558367592170810107340142196919606683986384879657842308632655493360720186229664532124045997329908769594938297158132191770462642413261889971288280032725323888166802879963144752119281130633670893260580785979260669571346302956610749214582097405389354959421909789765460487865295390121489764950329702617458990581472584882562675390583771055901511974858074155334898035569825056807025427267436430333161627280587564003733943016185727721913699543678622957358306259506190185299009492404528857375173553687330381341460758054755514481477975014558453170354790606244102988658160844157263443386145727724612019475230901698327916894392221634628072166930515348516250637081444906788698477068104962806110728606296573914904178216425048854059428808472327976473599590149949312039296495098189557122162880181232312811068096731778541530854542333152887722467945644009564597239750696124654415156112013054903713848176871363837200668900763754593324873369625583528803106860013408918015056323951210020628833212891837931108426456100078961674763084160353079441976062612751179390728150634219789449068453560657035573563773482786967298179155287394467901343486110731310046608318901635729659588414037686212765581232878331065232868469750715625826304431228524074090764622525708880371242488108510641998310697999313299557124393637975449066042191331080371943853059182523210318538256749440615544890502430983783426953484815208065712753840933330977101472012780198868226537766127159646486278497871694712130387908385335470285888291656847014865030620658765014651608450974829527030812056158404440496140970873960438940830681976728978461459370052468883921106531743613893991460882419984223532365823792002646090867815511801687601462520979438950878258496165313360351425025620785677301782491022190021614212754660631439128472703769437533815697832568191703709426912885537582635943419666619084905107263656026469848510693950949278265678584481520980416617076499912813817822282526418582249501676547488919274500943386582220321061671473387124370246281185768008061841589673325123206578232536384201956184573694894336771351252239709754897393126813623129948899199401768295304240212842063919689447934930609371347554390172850264866820849053562497470010630603783630351110958632200752787691724069597759504768201789073544264131041560714536032267491836947780779383122866226223532047293948507634495750165771919537952980656874368410386749609965961337066030936454098176953844641362693787976119748972152412718793861298714479921587386718918998852842728425707687953635963143570320130508357926160753284738831859154109087035730936576465059770255996996121402714154715781453626210637803979147766183846645061709391160346144640388109357595025947034195060890317264673554292744415527379930212123285008134678275401394063854500875303782120740475645712038889901739734678582110388573368868000122687671257183872560429385289304690275326671652923461230176948097978474740505886416085258468132915139271613215601333961722066330453253622793999647802967274741774389205679263899067549460218005665321369128182820679161175881269324383837045942769744620103202600185605566070622869780324657912759441194321575016000572942846805388173833478200373967348356345771366487014740035082802150283864409577565439438073282868409215901531590988535076037797331310815798664978676263195766250871773293815329060061321799431975894778064874899178252564190937286592383031982517739786787854469969756111223860091943387596051236735555859217755501685146718926931635246302377818999548609469715710388818843647552552532507652146200521999168811240498396654505637365895289079302158902516923777958480306861128341201731955124024950801046560859843416962183494141892227322670863366310217098343048759734515863667157981318645174586499356339749118255599973201723613621179580041674550074245000124000445661847777189415024853155597866125897773539101421828618370050975108895710294406267323434658145791698307936050514334707643550009226785956762094111013083158250701405614167878325884649664825797030369476049712825132303582559060521189918866931793758311129899946425004102965537353747119852551572109207906127080706592093431299972259379370211992237064065543211254435534467478988192540022824104171290217320907383770289791401551761462938966888405814471084953850246159734599587750935988828598896484768555227840509806608009776326501910973403626583958971890741609375664482164245567242153184719076132645034002467411348952987585197496984331396503095020007305108845849268838370064411978716497704751210113745220345122138895219890681787799604740190459801735337647935501966781276583953133392111340888068288845449404111618465028561688347570888636331108240084552867430739500349863460579938913163559969121572165416786902649465886853474994910979105205483042813653469861177842486737430906182350330098551537937756566593320164724324819595674574953241451149486745000001983790896177795828995410214578341338868848625828665282788616141844269568788470888607097350129771267462348343281834512719486295136245546332544925654201306948776503061830356902667613807278597241263100648432807932797651755398747960937183145846846341182254191764299074020312945710913356017561756146877194291157607049421807964436235337029200530823467853656274546327149438117904893577178706987221626813373885849580586987836101740322645496803900725689883304651481688359156175536639874093457295068812481985957654639495781116235074339533332858438986317237715804014177252035132022620523460677342981642550959898588532326288900521216443110088286644882893802325334241359955691748204817122267596912688107839009075719105282816875568048744968880700945501788831903046369846332820265853713874393673324296196009508348153445606549516083364275201069242630446429712023550075552019576148646486589316805791315265508626444329203599470389157997979203539259259803300662302312129883643154452457894916977555217414975584385152405235864366395153793148382666673620739716837831763479921634467716626035009849123108165147909217522909103608388259408268483821940701898564101418022912982676805630382549163748932201054311017520058165329951395099641969107236680332972309528665816530870252550561140450374938288235156355656467859548673332584605810965650754165418056857085992168470172701208473296552130216178818043727231735508541499198578006860776822068726805962521535648401960377272046551687770116559910578436428248995730645714827744598813268945618326577883137612699493967782358486547413723222928853440893353187855905775390656483012234919181388007253808539824063477250662116568715388102814333916653898373184758130878119006455315573943728059782804717304284773912121652349222162335706161447957558233180872674627447971803931308373906195333261849508922150998324786716316694771806068758697383840756794121385100602209912999891318781848284210326285393509909047965864484057982573701350335069740204140165037169914181538259969373073236988416934933504132740898118723208858763830548899460851172723430283013690155040897166689353253686389487031380418178627275688632568872908526520880092822213174746502067433489227251583662073328749027715374932349559380739297547099128155213765559480531784533540160598879845168179273595233829455054895056323083953249879295891410927742874330240854348674803101739626850682692971844313615158972936135049586082471919454613888459718138914726032816078105803349656754112225634221306623303720081327443223212009598010717264779329801830003978372087114129808276833206387456233881916385385580662229370882791823652705709740078241512479348048826633461017175539409396271831020052598797471669317484559560521671531879008414660050365382663235143380593076443369106418094980055627324355256246591580907244906354912472159496702978403529085928278618383191668851250708307912475116921660601794509290657389044116621955529846108371917700914727122142682468565331150621960699199033290461572152275130255051628787741108748909274471009563350245849849249096963123186646421392834921358194185455351500171697633283087311075233412477813226940518872162821817417984713701404780884893167924950028063657317311191937632813023210518268989808784361325446842949285341205668360638110664432138579055780555339025450980200363953880198095724499395808843083193325769711786145073214536346801007812563928691162852911127319295542944581685179083721157015600694818357658235784574264538130256377317443981000954607217169947593257819218051434660974407938000318415768205185477739436991691273683515219808977569383688982493517283159172882151551131953438406621250033172537453918269206515377264704129432269306618601309739079729760367955289401864262517881363524669766040859980686036544010306693509263295421465405432837100414367047200413215816104219664028114887254514975471962876683848179494656172571019342763762504782324547732430962622992263534854913860735209981698646945824740354047041546834478463830423687764335762352930455000333787657143393591793428456969563713978679810604458081779154407152832712810845831907998724205791028492550685655180355278686224015296640726874940716808853609571609359065809252264792619792579533953080808887402406450678071130153377704840754178210165556082272765184419050318264260238795665538917400050785387066964465969980998477158443837634429886812224389217597314238792462556631852471976828323390105501405017511516870001069478448792002137447263553305029522827918032632938566381597834511851360437060890164932273279478186805457682671411268322414314640414232224893932320715415709573832449100981013109216044923273951898905959384742441029714119034932316073506136298857172324831591200379292529860032204623105672835362029688483539586785897450208287263746286525134687825243740607573683994503095371656854103653566842940551195139197422383609359997379143592427839231816652943601422654203296150013418554361375413314288082799054978409903855085877829803134368013422555712680137956509272482506488250113056621940241138321981461192141579520983096754001461476280879285061125925887058554259623190019764142715361532693534607862021013001922734737552702995276488472954799934411273865167072797264100009653568264070386713589899717294638498248649493960814468627654348799941343241791675570878145693662218343129124998680067916906509261529060828647032406048549240048536857669185900057564722332165383104605781886770755403446869605206167045895568611085107395533651890956998498973901286697381943275313241698217048108674728856466097697819650429964322516343874812323827991249349627106279552785116452244990691065884962617873169231089779951001886700164715483116636828453555133965630810019704398467169560275171156817699101105077644109372563284738578011963752713914584403921281520865109228221183611661629173883370576737015804930097277231795644765847310652953869247460079093403256413643449423801435851844324465818087748026835401950024228861125243817826944920204973917538629403799093868272945372398566276767167489645106582461563018924258026344639871583233039332557148009249685791140374761811057475308748575506614692939444289311765693076888091609356357464583364939810798389829436659893483454495126512572202521647793511224924357219964413240651120257440540180946417644960011800319110124741130976198669132756912721037969208976237667539615105287635517120537109648986078747135759207640162337446709495734091326110096975361154939535357982536558365699713993871018759144992725851686048294500319264279443131162796444618292905776813558071347876683632630777282331438924463877197066772010840044612571794381377053541057801502200902082986068422846907417252429171148913128380337599244637836609952191836613142760004742845979561639324132303217002925254828440565028947280789825729357955255305281975973585204418291785151200382141098014336405409443349273870402411757022746559667636477667160371106180359515305792327849224445488171067024617310944833008116971754468477040212607278921913193735352816985190750262206667331744096085628098355301268787169588954901804766070840797677869795234687791245788133275388867476577729568602854083649780688010222174774533043163824419094043272780637382762184404006868911713982114401963206305594526695952647732827901937931150465856201556289806517099661125370868569085713874882285903523416788559886020782220359772906323783304320976526887275603604534611184497173580961334871164654188459536448852477829906404915677578454671689769801243808931183357730970500646973725653956951920955830082589773204307315263891966899849496826830778141137796624576567129257664048669677688570797266440492815367184777896767033246443363045819509141793872238296867614875810911004139456964403355905295099635525346002052639825923185607556580149430176911958789646210198118232524161473550350815704327155621290646684660509170690619378603950346838956082743645959303361784554245863763288734234389146749267658761329122323185742900843386628650890377044012803100266402132590106905840402328806221792902977532857714129014749141377529729110459897788468124571507072252011772148407258017352485989865135080163397183801040967366657511870518072658482185994249191876452711488325871746641545560406112537258311305078073107263860966317403360675085478071542262761520841698370578655831110411862018020079355523745403689632382876939235774592765687417245241315194580427722931091904796034663523007771866963314726614861255197101029150003733300291587134250812046589397325541929271339660601866483105280290863681497808893674828139152050303006309217707939627807412845694101685350006731103903732385552094460878392147693783738178790102581081877243987845009818059037542140315925425413853256492301975026507795935048218586842657443198292449225783996367557878940518589486590704712014543787431590486360149523398001167720182978655247769791619935529630210795004168991558459977437538331218886598212715872271669107673785931034154776170979873850547995808019558133088144521595082915150958985436389828028062115866394032292669528831273299498088698320403315300068544430049616829439075454452931158886845345299601968943489616017764742291066757423663873692562489617163066684217420332708380137215540330651419680925874567654673415731858970639561403723319151250574867921250462820244986794727773941192393493377601293148632669981229639044582406862496782638257132710508526825144561975321530108029309622825033990543984557087580050744914398412583358803690636225693903146060522446092939191792364679848313196736709701031255540763444403009802580540847762490990989475980632682429198099309373194514286196467759181294757306657507569803094498904678591214580556550468494671413891292606331185622322395486554735213800852693773464964001874863399498582492137108652158199886526979374341297803183296748626031744314170905011469385744121251263870798828192389102425260725847502253627119848160913065642907933870226307163912431906389111974262619710223898949960215128782297830773210992032097600381499410743004896786734801038244667268710359983298389711244934979341570797684138492971546296432162308595589956585694326227953320344246504591116782179091107730599698240004028634713279688124637409862619628072887874173872535130803496205917385049255186199400635363047579005949241127572957894949007369569901247293440107054160122111758087296176169219144963271865295171152495115552443991352068435257236714892701681363115767065987084575841471773964045647974800269961548808335857837282131820186808216755376826936084671133366647560147578982274677188986773613337616594358669248333093803673253016607518276596502944468865976081509486070273651332052021349315507139093034341199699901725086511998355199643824083145130956279234297089624651068525627350659491947184857151467425330514229703382677014903965480802046561133520343872663252925822958099529586146864170447334763679167897085015140843135840158124224635343958042762975418725994738535291188007378221613539069081111265485046950982644712196107113868858462746115301833693222629653538721770847610358152442535051562216690725333781402649984018392443719714799889139013428542075330861931903861961401908018892141410603414614548254071179122433349419071016635113808219161369370733252601023084145611879711438432273955128096811940128563006500081106675405352490257218791801438119767584989392575767736445485557018831344734838575246282975740402075937463295848829422698500424185744313357591265310955401405534113095949128569323315193934412626187211433755164249775680502173319372579932559088843084387603023874107214268720940611584437651519790082700445463479115957538037588668992242998230580120982043846014606389403343149757082162984698219901321675108259566540934361494418869768843978476851530198889727764349899244589438859369879564094364243550201798782662732894160760956452732076376498860624255169279229634579217491121406035409778200285095597961564557075418730311374762390599396562193541072847801932639885897633435575709967138765225031792131670527254915368701886802036132834704962543254953174783145269597004467355933184636847139206011626517081642143763133204575504212070609530172517998922590036465273399340466418141236507074530735307786379571469214880247496490200732406229675446983920573557768706129878773139768974876795465465929923497106978959619431547186752773043985297671457860078125661330532333844459608480949285295828243750216478963733389785851005994097468923795045282720297390984568569452925883095672765271308527178217496151072252363776528305170981903783822822430216227947215658067453951397259347129464930296485226285235898633572490202377849611888495722965927364139627275880064232726039415987686037365359670928748529195018847160611167724763473316283055443041422489579080947458797863910218900111000807438014660338975429581134031423059069957254484955447856849744156382951220753742190084201612069055400016596412210006179479518825017030953520680387874952029455800856177391278160920115078675866133136367812568832764027574746779120540856385660523570193526606569780178605620419117856543756324711216025742428121315933739506122541596592534555963704387864200568302957606987068780361017083536699813197127002810040791592598259488055747783470013316872205066522856990066457075496977380016562046731250506315285877418636718437458428502302892167014117232884793347336419221611766351390007561196729815298113000398057761346686859983868520359620402119093334531606544334455271977159837936545483921197430284914605109900652014974168306155923341237545945767099078642179381247948610918010743236773582538152007458878814248546617657914251595687727615981843579726568889420897200555173141103115370318047447520528697264601428925119216080256312875532442617750392365452386120950128158008168850773472738782930072907956172537332359881561022736456666186085597887561006608510070174106621088416324099515453249908102126475421204094792814862430731023380644172419339363311920329279799111162344929464559847467434848946410466308306506762564269008462422836415775640695300880715784533222723360709449294565045830842024891295042067256855255735723998274775944917772053765255457045793498647197610006047363581971824532265351663972186557100657792108430970626845494746000030832279028918884409794429844459545024815393966329086316589694393131116829246805947305853431793789377211632103210806834258478146750472646540920189614631976493971746191619223946576320817883661160952328579161393435284749306961565544062421449810066039002625402483525317567472929359539616591596358143426286306402333332764321560767765015269162741917372308571331870087018232650876648087326297597815956426231797777183363939362929411748389510291367283257475300634660570531113237413782407268425692643553761555949201507149566814376604728871189672095732420815601367265212785798743459874732597151871993466411365892695639250237956185229337991904237166508416095424815839901808718416830182478708430863625485830626778808525643100390285757242354094166590562693725714818591137541430979147459189588663783919315945700623091283497372472554820272451106371708358849596394453803398321250867428216438979566312659666973922370134182104912049710016049860596969927086519158020835039631621387900735531252891672156229690109903137515425800445286901797827423431570774523403535104671500522601363771443081390909355579311961660268424557590446788120013734995915142271499062734527078185408761223838360908355388594629101727985815748930040054412656096690422770520646467891695402683083192718808516083591748556761624826179101841119220570945686851422362924457085842943838347654651969904164760011802578502252400190234638122596322291143365056600144060883396730235030725216924867543357547304941572575407352762021444406172195078227024272801524568706536277524292062717498121017131325623819560846612263655598240500506307163698950254480445993361419051704293723364935759688534269915521368632252552811929331210555401902645063324024287922407911823603418956827044753666324527186523876752859762498954041256789839240006544094786152558204670801192229628674576851666588520696684708265997168730207125003858020646793520317993648608229172787761115093905796089214460977734588409922956512806561351702327297452776501391967140172526354721213104759824211890795437440371048880854235167027420814492283494800155241394847773599711914323144849029440203620944123416085968431046581017096616552697425779107030523951841524868665347096935861912012596710046463944929868923075855695477595287432722648099979096963862498900175516608228076716354940297874789431386015163431171050680542872780155101762314013727260673997897689408166339403509885646065979226234921272473733259915202114081510703602491760108998549003711297936950314136584330436265219464170397189329059239820013383442496265522593173040061229946744501769836820990067828572498006747953314099772144282498087530105547712460161922211970279293070375706692896901568160741869491211943109008095383158575771880476038333481651809998737251851194109053161682466289574434503423243686079923498372615161025036622188081840086610497449674930180029166389154155500208497732109311264080604701894216377520496367158873146635069404689314638360746018939078063192073812261631900313226206226791233670870633307433757535551930602978665976923018403476167094632360620260258682533997459259327676027403433647644069518451659302980702901309744268463036757342608526692476078412900133094999977864306051757908786877126190241617420857596920097662757450550657902145851179429235363133963660239444247494266724693246443561045129480753135702484437213311071983750069870961136859504960869170800644564223597789292973416571898405086365342715002670735568430163699317298194177060946766971149342194699584134635076586201501305164183705569133253934039086212708587454273208465062132143626650294777347404508124725719203855582362848306678758835932368422985705591446213735730759422111202693221432937240753641331262952126051439512678390623071993432871269619508136185621250290284502140127011130169567548687771624551792479515602627535929839407729119103848349054902655702736221251159109040243419479570178798783874806446265644683263453405536728105611304103433120069908715570467365832131076536575607020020358694050560658081645230072521013739356574085624648470933816287983943395214621037204404731513885106348408465025774506837601330040480232517537836155230926185817762108944783837071471498116482255769649472351683319201482439823050436780890661525178234706208914859213501629682164469272750954646199287433285753126738979766740358525227643129201844738669345508013017882123009067804083509414561715351346804417135005036402103163022781451160352954001014201499718960155843882109977673697561885393015608767546454057275868204804706377734528093313662028150179735759784212962973117716142902086888799424023800281851282917824355417539964905867144939752299214548040370848760933950077557213864314774313209441390610033378586430462282966317280505940461663363284084178961541951588599875520545963209191234797777667115627610975928374001761366048934256800446315579523912833114230280568195833682471731524120902676684642712889828850237207142791228050745148611892006362053454789610072838024825112680545194955336168471272351416995047669227324961314630414561695685661279310475782216310722526780507712915375339637708500563106470420993375806544094630200336444408049126099748340705294576540401265467368022643494374108937656826427526232210921771195957285125396574229358564656237258614704404633844004998993043641468409235739281703844462209812565384237262093299205306603549653421127480512461731660277332095762104339764698108054649426974161972104298331718665082428318315029611164915184916801641222758797857778393812590337044849951478847810248790705632844403876762097285565110283454780212772125108889640009887890140002743159305670122885760881485041594438014265217279311337017215440317059787224504396100512707034391769303040821930148285000050018998130495782727860053502050012694465129855317520421941605656731461411691305448644754496518653029557328246051229116953129485727406422428705810371052513024632348256441637113139196406868963250815860160355002095463890293705249058390912336800496297379801614785277339006401652885991786348737186875818685757988990448061474042395170269192552068984375040969453435946559596561836672240860020905099889515651525801949359423018589351671689816488098552447704946576173285273055935680838487182722291740793971153962299302279807292064022940589873621446828255076557470467700172600879729517249585476036263626396997928750717223973311292838532516706174904546517078110079417733873549207064674969146978315870234048830834651790081795966769335788212921629835031403682073437393963161658567268811541206185354102815816830391148641406734180184101347630315111719301676519180469171563394941320332991154182529984941626260508578518235976303559373435405785792077268548096625316996837522753699373282823588891278874092614045359352276082614621940292013358945481603506817353647547308737602251217952018919977238413392774272383464409825545762545107391539318555880861346041500594469248592649986865790838961135400002270861030511156185502853884518679862068097165708250137383922679977746920774595885701403355205974373867994673562702421199007427236374868284355755399895975237589681194127869345643759416075511956821105130500159243568815161269886939976274337818930321000865321687216274040129925787767449686899429286900009119032342491602176577543776889399618058038032037666969086008041400348498897905044736745878033013096793573399010027277734922892898415414386138823030621131196272499173860426343445192221374289863115531406195335063025212676106136328512715073859774839117656579230463997120549517444763609426198836397522984655455939331651059723605954761807321412764656881061223448385388663356743813067875427454523359522505617019274118281687490447815369479746163668888007842412145096501511548126254041654115012515238500328904591804359899615614086616509353987946337944807191493479920495392365498111845451189481804243253857611488556525611764160477569032600381658501173389608449517293521568490574751620468368350523137517404605685827652884785643207110994832016297147845121581523422505952773248064052539913588325529211093458129253979227239706979095300182384226285424047795227543870944934971632407711873466574663066065527794339719851596926426721826608485087429557406843231607944397930008201577094409791716797453283987211635396755750851019167371196433769046565326218943359922092707827198102962407633491042746076033996094789190924127931091022675428780243328627798987657652221426084987112258864680881484657429369438594804547382226951802797192866472197258394427490483745134760857648055479200697105104943126501540887785637339436792859919322508924009439018403937529991690672312179276727068280786536818340942257598699728821368448498394192686952056887270314607901889820896717835031662404484544847322649351792797606989708607476602615525214085734194016085403081563603982132672711769327934665321496798834954459945177571984400994590619855639617730519837691461711197763268506715405531853040833906187903141037527870416828632337844189330869409575708202995192799217615277014398896562538101876814018510863635224634058291600904758325451367438685256239435271366103042772951229036551726024865599632978094440801658509264642662946939425525085509120790625356303684792845493853726145587977943666300158492545126041263185324933386189982931264133893936529649127591319846262565967402323447881631081815143261794137158361407856926813465870780804773457497895192953006075603292957210192804852312325177721500064207466411819310897133258623554684856852592754655638776382381199164971087859052033162124896953396856313406755254155680252991973424771416172752568398076897803943560899614190219977837462858274734115146256261651805865176990063408482787027959036590795481407281117033111417258068087185320704709730746138115444327245313876239513444459049368333128820334704605114646373436989929466417282577799615883944810534228838446611518934209261406884107524716925135377679646018673641787053208705633864300045383157968362938598207757822539944093704949324132527918069220092286150393517788185350200897447320267553787421962017236015347156682387245345329614814748802641229482622767932026040741908505147541568744822072450975637097563991709078834027679713963633693517822454446924150594981194917010851294943536843913221132540479207079489173292235762050320185244586125860583290112199299669569462183823080077231654876600977982447236352112907339256968065930862504756355443237630396058130630987621542455802909263851991899839125749303812040553982716424675606958202854052308317237025170536018742516902508773212284582610591535224797875518188292301357833956989542993282599235340834839431343267611913628414990990350820168571756847086224714342014063975911571342454186885860813172743266165464313387928487786705027543489303828101150114507150541623143346953788352460766244074947854652647422819946189160570437395452803745601893991000184361706725907791445551953245608049121920416209574343974946611499851165256698540424600228496211946818189777290366867813682841938913491102999599676511751384228892543171147750178230310291932101433025352454461699440555627882243526984252766192349854134780881036364351566727494135870591250898521540210147452487923847543675862147944427431918104411239065073093402244056221933777721065440136663041962401844481986319715271515630406591849343034742756434251184770949833603386962476975304661875859869010381854264643486928118417974419949899112634204242772429690803960221278923282677055475275105437679501274544727771065222026441025514112204612709123329110950662471926297829325629706002126126424230397658100951104916040512123159297312702004227531532841620073604860354666653102619899466674471713563596384806418710629173576262675265408891378841083970248304875358267484886530349892439157801596260543994831529525169330000754997448198946489444787145065631233168902169847154249120903103262380082035237033833567452430113594619394920257381664512126344751333488657588916012436141610958059616891682479734084581264834524798062302708505121443673311680495384240122707226192491373969631084491017727758470271355015140983868130446119418263065638251396040396049367276761081387716018176370053227151098305288670246979526228224997480181660637473137685726236260785346179929933463489514942078311139506158990265609682246933713811164687223448674652270794017365604758878507863386779385951792784444015419020552519811924165918717236483203376128176023801394494098268980363640942990706110756815005545993825406642243137702322736789313530530377996300430566594934176003681577984418833098187698498387312706298723932763475475751622075471994247169851558426110562011385313217369733777291955775378733732646562120857457157419137767171838445306619548329095237970867000691598365135017506772479463335468560153330296141082953259108375779716562653889594680326156521342369045979847900565411238050831718256357177752720487875069590741575787842667968804624725574376096429420618194781877577411833598288606593256538115695381004836505903197306508815264095696844784023520900698979006752857938604473112366493430680315921689004072100602859229074137230451465967249872133714130846381194082790296935869921721839529223775664845704323141277045915716901276859180686050208662276595430752658805696305119919261560134404599520104979939063087101640514622527734954582602871127709564668262194110275866977247209262667175311686281880404594799789186737460881784141258804470433128755053555800154102263551353736745867858985122350198948244250712525274123286176549495364929608977698771375320967311882825863518212774475705263195700264294204547265393161082510984751464063513884798804105680420837368037712308100727870557676911494366427090635712286435818609940985590970772749219729374593557280323308597323118273462100556580675833531960699635951882356011716391892282103146721161181630255324017538046682917745012764696037815145957918018256744901007956989370773636974518207867623159891731972822487504701220773734961564576272279513324995728277390013540566120995928257379847444429108663723181207696377850014833589919060492189300951756648011114896369201623543608260794978824667774044224482750209028623306635807456903527911536877561496368776815221648077927987002849895092630487060631497229292114808834107769193239655518503297224978557852050488992214400925874982497649457629604579997447109167479466243296389374542182744489459741122009615488376135744806476687343521790577239337107170845210117098949705958400633980978543773239802585530590231580745948485844555541822249878239005566850865021448828442608652385326062892635462410853419020612211495296757062018595626498262225866423678999146538769523192125362449257107859158167483256459351046615048298912555479483700091451430732431135697356650898442202196684880269439836894002376744054240283553262131053430865005807099517527260922521194737363719025542637145681372299792163137452162955541958539508740767995511403890313809505859500575004740340063268710156931427933478752143710793763567405320825399080621561209071312173759450319111540418670268523568505639839509861837888734330202122943088101101250771768254576007430984237576882152703489443407574200983735552102724949277791478664745032446004732237798695697529034909472224158708164063756953476932303933610239367195052965055474021577359433127240569893203610579471273193707620041326585059183479989371512323761014102779996819290002493742948187992241221392581468068436769895468526070218137271711257968554307145584224424895170182314446397189976419025130207572000507345090546601063424676572029905319644982606942388990876016366773012159202312226023640350845944622192438257348212312034641607059247283589980910920657265794297584603415768683467218395324936851343710892981791697184897796961676235628558106233830220159129252985334307220864880822283428019473859981732585778227545944100863112435270561569240274969057953622504044152527981395202306434466353558592711559439244470406595637919963063099125039245631206027012545039161938676051947438642428240987891594972969446643611980322419396573246619920363650294066763964943737114831757049602422653219454241998029064532615940707077096533211757929036732660369105106801517450592543000344904055592339056044946228863510454095314558099118997905764874619584746800065086291048596779582025034722069059939832085324049647553871081689765448194859874493984076248273600245611575200734005226131473416928414582171414482933844248080875135001301198142310456333763057360370037767080974014902270121335494929765254201064941139262840288236974491876008641238535585731114042121609873854877995480720129278603785151255061068055602407776012572172724380581472997720743326391179105672956602136825983340110813169682671843021126179462216107520656777616502105335612172827657973608364968035106868250427161871398327050012601363234003605948295379842679781572892455041517519571858117906125057102766131721513530463030587121014121008426706379782789451864653244458433994480879054909063921056613941828666468328028850525036063140162312716611232760248052084783207836705364614184183285167841711768109754890609679407825522024743886312485727995767472068212097879565888598755763109365205017630691556010233364354493972709452636380152673168556698301754893306033809064454830227317583086776665714089005575116507102703656221881163396991373445779154735512240599416787758080425609637022328024747144040650075766065040269773797766073981030819050948676391823566520211285601288012624968827585135843279331921070089333791399165619452260342725376260659560530580867992849151013015630777802875592773859403982086546150696049446250478411176330072414298681184710657274457731921107039503209885751880785553434040087488147550811717100183778367236263774913087058648264626183907410076412571419454193939099433455013501782727055058608380067433174945403391751257330962952667797854211526859526840769587723141924851505358281654425390546609081895988371488599493921707425823369447687230616355561277279098018555569243012136468618658002269813990238352940591627295473999939423883192671656482318215743294114742522615020255513123848629948726225364051766152554584383268397793976213636429790442219498702643146163744852282496175074586981878573639001087713650307665359811047531265478481922586257752294794287877992245069941560773470373193525188525612519899636968764724450157439049210147746686547847533586078023930431515706541299670070493275464658204560465250502271598854172078361098429349804194849623748781990626929926279316985364102845469090968506012397613914242408177289450681398077529007212477597916253804018122919148870776491984008677072027477997861309622199257674073750098875176467392714060010896172589980922327835003254574275461282374754649212297565984772469507763111260527009454670685362049607202335345648466223654041699709342793551712668831360396172378121388593955867028752492735561402813950920394490946611760253504424321055713300442559640829732218630909122912495148994821009620288330570179189976493737861700198272914582681102983576119052146961284464861647218911355066541495296955357899555279613900051964192783957516359912729610777283685863465416144427250416716508253995783534322402991554984801785342939218495404090666880288354779667501293214014244928672060937923130482977440436317343914674487062648016831207814757204506286436800040025486307246445968040185256414212304527734259546753271665774712738405369868703049593703361901954181765648795357941352807910048563062451573145141670438011649392300632238115215254127522232561143744597150754162531932599907330276281747760285265496489024194679212369708924328422522211741210447885966835901353564282980935639948003830891546868615095771688550256032957902494811318790711789520574022410677982291932597284866752521263067274491650079414865248564274456180017260513554977448006061061415880461495944668187280659929276707132972287793760937450597802186258464232466902481354387877289529435467219760318728753115573687187428283475657562928439592914094740282688940236697207831723730008678225898303577181922103904547219674683374689053227064086773947723777724924876125703265717755652070588136541573145165978197885408612702196667523574441870322032576537364501692254041080364165242762672672117170814364616955729653456979025781469689964265189543140766767250146962525468561890283871118700659414008369810548857992004404448077463248100293241459101252688536420773608602118940514981843189231666557890253760919553068224622470332811298920052665902340979401620803279544799722262656514770059532064868308588426165428569477777721646250363162989190587741151710682593348213127429658239695396002529345263360984462629900692822704872152974183338482256588185408496719696474871266583843011692318702620550414896444614170687486157980569209109957248320897121457936062884306715875405001486500473231951469270447964132223888444228655628801139259635761249737175902485393788825197644871299816218042499131563742156308347493531425413048770890955710664469645662505798939992421951052671193960791667190498632112773282307283052964182562847257149517848638004792034580463971722356245039597713820826535993697888672358287548773041219926719055163411209883402472880241823476408398924752365321324824659546666248949479196520983416708237447665370581059396329129843695704586868044803070180115197210694778137561095377276011561490386149338072607302266121693091255232958949688605045597578190454779178436581032555398668906609082050240570288419263994688839264652392648204286911498144707641584063961146562535724953955300150762472523064575235847086073670858030976977341006145032042199982056950992659329821995042893983524097894095924941766306803345463109140667151742754343966259671534845646853227664958970055903674315655912059152164299552301646815552165753378125965364857139665279795933484658539507670321117904096404849853052270276764223811929318077751408058625884263585500266171542622201005955236718398768072896949138526822389438430729355654047423963127184265847717539321427045801788974641978287672230759843198061394219203118922861857775671359629186955857436336735997012244876365091579296747740751574078104604767509368196309868046211702651430198836227631050842653497145600426044429556167938305652519989497358492845466056931031942277431163208294042252240713243400242733239189439534990747978165271486422645809004984154108127636085505732372226084676436013300874357924189278445189726414304365184250752069386599944935130988623986878710697032358228198712873806458368910616980549559891140441805242147944632109164578212516796679659523514778272940808888959671628079432197191231927933815961217555414382008447669385020224570232124480341591124589298446333320449608382222268666172863406664657813587457896104054025852089838596336821468521081088808451724329375307155347338364706977150513025849194249598133667680699023864654564232972691307758157984729430007062197710228666663604255215446841095636994999162030265963003036731674688515824390348504156319874604791536276624410372411009020283274898126721079913654871919351110468109056283436736741041789254754012182911630209187812132149593122749479900246272826316020696877158551689057669223657191693474814020372313524697428356380609994149983324791516583521919142451562259282200538663295081151718945609251613690727910086671079046867894684924117832923807077164010741789913115594405098286198356834436008968197357945430087996258082323536448585599068665545807652584987701143138670315614053613747874756279904856517806229105958141036622340061090387742417889821048711885437950830082785149273612373715241843173401178497075258385555014620055668730578869180259506248793048679744949659515109414723528957983138708202541243264844808728516961265718492774179690513415775049143675381560164542263577641618796168143230823038682238523926316829182087385394537959804460216820108142182082775187819831154385243342425531160703395335037782446670417512055494717635183034183079990193692456978848580294756697196951967666355445939254329303605998884868783974527724435956009194226539064032876821106521852136290272878307975270840009282224506277229010695259692758782432724777522816010645407179465420715483271155007382360078747984247588867532480264427621722292325246289492255658118642412416267824346362043300897037966594277394073163821846524861704992584351253651779594926343872902486510861846466372896167703243010377569328222707329282479031554414789422831945321797617237308193275847505830665642865822465597953309761784133304832206639628422308092934629363825128985729540782795260267426977327203059336907648629901409411575431159878851231882182856940493102491081489263920913506897021831647631119495390160725807104315835783983023595029765055787165291230313593713482492045931468646136817491979214105902402706420083518059763957040998537258953216546990303996922525476025226741306152279239609102635082795687814182992513464483892140252864160074879046773443451293664290050855708750357624119590218833110985598523626322440967954410351021053848026291284363387595759214700944763928516041316739306878629314172966208539478531480761665062156404711170319455796965068026633120392705587704535016234778369433585475731017945492493071423728845281889376638955661190339059779155246763539455884639136148129803728862063298003104164619192096180345336382752707796007250478729824435630689795003576803651877584776146638711804407093343238449806938863601484172891733347880823643609560961635857514503857471745058110035076663257733854364933236776606148939807948508034772780853298897954229117055422908328858772326697312114291080010896975244006565448456294924948763783515240008885563472051887908521816034511375086204911045933961498506598354366300449631135622457674162738231086281725308532671554004662195999201321362626091291183607345830482952559207603605222794417197529308970314208859055300946788536328282959627295158995246800543147294680110711453995497760678279868699873785502200008609203170183913932917065265137807926184790078314143445286917865748311203688008548884928678928711024785549476966348211309047205261020031847426208771917821726321317645418815113683951620088778014693248401169365143660192009398524096918219510810232871462400872931915834700321267907065608267836034700219407805172465400815442827533581161471104371964679466052126923028738671762199562699375091784832014707947496306072931387581201236182487968550282256074873820364047567436228198551752232329060995516423367386670830441179545311476400509164306507973505667854006917817426930392081889901353520478951725290385508487579979418280606994579395026427952030813681962508293769334378544634820005291093192790390965854703702405577367576646276914113134397811658298255539616233503454826496384776601436267294851105917386240082629574168488527493844894842537337540332782561940072026981964081446671116434428737657123129280066494525640506028337413941348699375476085666568573241273742439956487816764747417183254737779999360056917087223498004656772102872954404351194246170343582921313834270657407326504802938411305327543796008415181033500725644300861302921499823890598419619480223155126884131827812396830638693119425554313386822715556581375702874066259350535197606695121659970235287904972915637690192395098476542849222556771656025251882252442050360954637789648890389058071042650231279783492228355508722136009545888333826930448611187335238194876820904163384917729301111799980551184779957497687683392890757191547127605290456992610051239510511027499896332542761853758336624909446260862856491446142444390199481492348957134877014911466884064375461885475046635248823697494406840979458155167327737289872168640051858341991966867999239458084888602262071904268157391443102737010310006599155957216911735288965368759356663944500270962420709579466840184262565314020674403268893135528379301664997968283664728180681920843887730299483553002956769079483195642757716235310264986334588528893396927870107601302984242298070389550625855470132638069825437640611772429712718980331307506872876135770324281778631818869706986307253092879486627705490460329532862948336223785501012721558792949882906723844901143605056553480082009847593900934165043392691814560493409528233747670794526403853647186664395995646202178558980037093297722753123764683503914888684143745040233623932131922258217203508276525089516246522470433360656446856915442826291456716009183201352580781980861809391163553784237031932003651302678332750594620546658416585923014216663724863592702429991707037801977853436515804928311545082361843719365234976236586984620316974454255549922703127793185821822943700383949322265230256739407033747936452700938693412905113790124709495446881441827961706979109736793355356249463669269985908722812690345893428480032180754446074554218070300741386610047981258072111488844987642438936544742491163150677962756160786366946847564273475729315963450286089669766351397540730128585915678094311180679863813461903447826885197865572760600746433518016985276389037544772900943934218838837118433941050332287565186071294353757434228841028215327543971623663682698762761538880786176047854407703248970440542354459682251549468198811371409216970980741785277341154785439256443446289691246760566803956377856661146669071025612440839939107287113446987787529978613000556344404411334118008815900036991392551848354925779114652513714762640488864391796192630178441065052453348940269273937729598297320075085050167229731471877744429162576369222001453728378136583935325973600283971490863077207256210863606766546821301613352476288005192663442412921813903250065006256529547672159305994234951139957573895135637326851107769702039244038846306886706442152223054727188215922464199601115495851965131746577360654986714645844148014321876349250827996501170415581190970881691338951976068265604631887567123076875249610687660077618941428470102496621074945438065254025016303386958227395341012276462785020326788799467754924940309374971623741772214692901351883838172149122186928144341531969965081979490045550701578498756564013913188926890713640166576705396096444067970798275117125266614614998738763592373901335256707488940915203002415124233261138615990504387792265922431489012240093280445051464913952669096633266739569282286712746993181175350388790592266545953080706206483148106832138630893325359320910461664903853739857745940961143072235714957269525411645204809915883712796582411082851189323837823760382989052497608252170354650396133132559105717950376882863614653863883575653013621248141708540522382415076930927695348954216314163698982747130435368296744247087721787705583149908283421655115390317720797291853630429203333992596471132644361067111935617002127789070279359693989941058064394902186071054779535398248754320896017420347033938501164000689225779286830083211379106424366602676609275810741627719437173844072420065757390341787196420743777338461223391930338513892807849989515923937318610065044052902776611860891631350448751611956124552832761836773345388031821894709259248438384007337621475945752804079409615772987240188946459831720389377705219778383826423617863335568135318407401845434083609189343880795940847357594594345715101541880664452493974126491081487723705848586963616409088661073893851342134103574606901276421019580842621367306400345619352223299168511859414023805373476481735496309607891022819696140038872731072034266916655261302641125096478002414436343662006141651587730409695539050377128381359338401778048299987254219594686907610203478326835346708801480214705500599831693465634826402980261923274841403050096059007525941284935076444370362118559094547371108161817523968581700603181273245366308807843719301165112766894933402578084630140802514204007833932298564805589397605821822733116959764109398879225230508120659930915512055599101031853530773831814707629045889296407532366562437389245943607531008451427765629786187308806656671263364533489905859287408061800665711995522766481432980967183242817776624899136018190964007752217190769281544462087390877263064146632125906441831323578128629279136258831574296606681295533062319238864288946658978522221666423062050580755253264273206638778926452460709098338213730524965034288803360418297256135619649510197576147535350864241000872098058923768019916661316088900148886720090311378686511156986639875649661319438794302684760461882609572228855387116577994690789232757510431388117299555548715982858288167115475265085983354517801625191185726606866882236836077504959649735956097172425186500749825938808131959708914226619386736897658554666774217135043256354160993524236945427990490440452791296565357441003033298888784330116653988279714302326080896795502054526802435250301795137409925111584151014721369564059356658002017711577339810675836733602664536855007512583320982513852773331647514695304112261032557261130031857402407493315492178736938667894292599938160375243735238349175329403217582344263849786013113153862540937846587091803193151348917139824862567436772660513080067142076536099485300961302684618199076230629747440792791983752364620444261346725590668581176967626350594016315477139453103701826364401699350974324620594842414616026719378908553230752603418027714483333775962505928368126102307122594992894561088715888147513656606185943552231257353123135702600879856125808630461498116448000429690071804807300755733562596953521901473430079719515409075884592176485412227734724469196937726566348337968959359206343661677821633382447786752289220815707242088685988905914379079685601445678810684097733138949655759991361067537969329482529698530508778924059556475821102894888770908122210870261824061114292587103829088203789094628723427419044361028146865588645384913399782352953058170660275140254033484151808275435439165642358835962097727719296565355167508487737722410682160768020924343573863727049440977204872971733885355626564828639161252963802076548921047528188164387326647547009256308871312069482334728751815373298181439873149739078528499114940204385460903245530142910547815256369225533290215686624514642564153666968876868022610337726619262744914481500408481690036703397397100568631087825535061281731813021133512099769938341450007816493450462360911203635263826695502885044806649367140055520889070713462197352240655827095772282692062638714957761359142744426520195327063048602714556686582141564701888120849076411843648377439729073613816506897520397695101396237428922767732658171790484850175138507709532993621767957975383881916789521803707550735882672535304556009260954503553424462694226597732049342922104493330315892795476282532017349742137941888327308416086480047748205736443886078828867535298958506996638759073435049230493106314465733309186426194890499529703321961260501653218145384392271964193539797638802410067279770469222939498966522623743317137216387236006185694506298373632943004575669780501224942381661869215236652707890048651113264832052052653351048091196175352572665859641793954739645935860202352090117493345505019985734639283305284682909656053316249669445695150390194437837866504999211346807954523256139820289954657481013962036818690461046223381106905107206758428540747704058392955797229150013921484528386852472605341675037021839155593546939958018129263969343149739197480346581750137047613828613104723578928912686952454653615042776319619763894110206501351659311869650781313944743015115112225970905656279932267719279954268256473368115583955288990701295792590109899716943393486608788684117934123050689943141777031694623376302948030653066329670515928036305652459621255941709799720464148705534359699247391389903744613886388891342740616714262316990349372885777965799991680709195058808674672784132469317930280931192280923886814615435464741929660818044252409769144214411001850920678124413044003198979203526836610400625148196471061061701846566885336463039255522194151350933140901962519418274668903330201992549717496869400045187580605122004860953484300169836723353535829557800535869789361901432577200115109550313574217617707498625966971683867900021250770443989973130169913769274726043221033620192485307319220639865047728265476102342434132897683741231630752995864260696553396035605651689372834280177110185598390182304694995281700750496443428985400803824193661549306231871027973472144450435874526913315532080856107145375928213221012901866296449014717987381125854285516030894617626245826022916761137983980040607484199918085076820539209329288558355879280524335494181401216524278830105039379555737967128801449866207964835219231944875481801083122251669370842500555591939823519857833935419112673467523131931135134065200788043749576625885765204961540275920833011077523715225583797822994003253666869597702373495700379080344586735027563109677617058447142429945045157454954741936538244811419333167631544083333351706811702601304877820705493110743287180549340140116988342586732465482789942123219360080246359284811325024347536882188387287969657779150265203169508231619076712537952210809181933669951177799950455834895234229898355764667030091387720946779367309038765390856173337673588132795084611057506748859596004582486439153672503201943114427326342053840736323404829999961195584372046636192904747219880657043861826358370709943078265960492088456642373505724243857521422664571570008068710782562898079809668503247076571166419021824171086394716313581661259976745519366983417775778738493361375647683378520042508097588709913172524576253348633735931092815494866486351092589433881295151949455873882278168082364607121570396463894380647085398069463491424929887452476024187435008141963980558274652427852300380078341386557450956623276634481677489352744487547659224113958107561172590809729089562512933958495395754882676161939620842432697192498146894362695681263923190898609116016980896458001119926226274780067887994770307140262602321534918767134914383309876838804689603614134527477073719485172705491065932229152268706468943039336431110812504681290266036403164516276106440324417605543075778870688905183673934120594859637178567414867257526762722762770583365052438198604326924159332518033808522010310271935220958435827848515168621265151331263785686005077891546834394379443594675301711466297300802808119661075536853778656765396824957732752345917750499901632926861476817505575536486218195563299749231832231208237385617697318312379395008974746429376764696255341316040892960874372254734303358164712233796391587331728571569187596819019562511950538666617490801445701223263528357336918886294907509261615948837625635875210964705521719193277359959918936462378670562497121524156348768367811473296347285637362691024736575105018424460300408913639363993026099283893410480471002045280976230343258095416343895660264292588961415446340411990415664341604376933835000325734954751292831009482035593286889425659749639522982126888918287181369870562176846143982854242258422116595581938696236378559372012446713006574389928003824006141700897476981814903708109455145435097668230008725937537985686377529621466425439250611039389136258278659862555987450764624477582330773061973695930226905939959657482095832365872388081479032144808870935389152045208774337796799926762985381895853802376570252781126110549378421983148503302904900651164355935010056273311237071630708576681372846981557082811595834972494746363145763803832310556406089334765942403074071499260224470588887976314812885171813955902711483912556729462685137532589712725960315439183071038151799256193048725720107551951823919662099310136071591834112978660885797878078597624672075228601007544806624706010665732621991252511045492739677995882973182667775859440613521830739197121941571400928805442979931992696433434357094362989357588662343287611306104779943222306019828475950298756898685448420155879664464056753400867865859581028803017319545239083717773458119245240880125306791128711534972386769727210373674869644636751632641698183394229995344579171580647136908838775499176774307102119063706798430665205722114702065554265654507768406715066035398731373883701886007411245550681336516710275507539281182501964792147831737727976434594785784890186416120930036113970793355079597315934651848727701172221416770405304047052948403473791466777821983421501308168035321466288930477577297027933745342297108732089878579332393329178370923284014261344460465554351298211604883301713311401833700400997396996713586803632182170568721406858371240595780015724958302897182273061730005214582267775334274997728164433430746110432905041308386075615650447366529115823581581460197347312262456383966754353185829047319841561900175252070685421218108558368640632647921913338221471611335234250127601871786221981856678124756046656602835634266739712536174545589069348451540822924140205627112145749605301582943778946904831315265573470701532276664591954184761438250418227007171629916563616049967452471316438882288372173216531032184388647299335283636573988740144513603288926552762252844720097388126257973645041626956719279301794149668585181411923154656824195839263751457555931348198666083486216092273123953196438385490588721163150381972133330923287704324805690934666172547827804115159525832399968736268674218324513013251914172302256652094717811367022416897495552120589736069754016114181989596605904655154001680165362406127267069287608664555674767214683085020135733740866511574931108978786473529958291880098548999217215011120405026942509407758471933006936182183335630507351910938417740832630504393778950026573567671020359842413773219485616122113131023447027782026328432179384121393701141522077197433585598267745259550289206390411918435202937937622797098267875099327589255827208219728901226316534997249658034819951017580667997599313395717379788932958009243990045243738305905666974335455059356420274784869342413728715233525498938452094450066821205111045537865224425168570775081833198216651755393627203287313690545814951004551349475981592507731562066301035144397499765273669541618722875643857638172059320184615755678302383161198920565928847918872947348791762106916273473204134760918874687583744860292134011561970132956858747978148533017780257271812225557780202590067984651037334447496231249202858956587159241463602347671314691569816685620632012296342541020867031741473922704121908148807440458410697668517792737436861700708333623662173428022167684572616503324312559538758574908348299352474417955146294840743649334504119368829519681346796147674133255919795951945079460933715179195992824845070988408898610785800025769823940145048174801521007716279770378837236102727215647602781277311849827471904385279725834003279011218665043937204905634976578266230854217695541296805326558162871504254964951316316223900772071275679532353406142424502177653001210995300894405991493472067216463260993331708471007595766930704290417946551831317697952188445349571138229132964750056863011114140401032859273527250236928794175667402405592386351399164223718707348483014096166855611044720475450273639271977603746631737109048736281943140254521478490026798447138989598225682863551370937233863970876608732781879825528967590301645910009151556259225490630431511150946589087322662848580894298095451334728336907854559739775639586014004892957951347479159383038151112854789914886125202099937147987382415455640412530382250039052108376142419693156188150630397928146121162104991472217220064573096841705118353976649409967419640976362262729929634433233095737056051955252793119002258158652796990019441498400188564671753027351047897630301450809783880394268848661750345860948938760789422648926369915282955194021797622793221704053280705740057245063750383190497661354585648553681468180491489441328903661598186532182810109368830144563895255578958368527303753210707202981329889676759773931413532332810112279514421566941868596572593426390762298636867051056360883414886905812551323416868372225753347777054628642286941513590955284500442997945735420272828094696605284421000743751155234682623120546925092775449297899915798736268820208355764807944221071696196931420834015332350794894570198995658655791201769912479467470429716054501219731691362721289132089820818753191042226812430439915291966821298129338633485673952161494034554398170143073502976162077172938107033086886564247780189116305615649826197511355607479856139697716598823126265589088649642556837170556986140993615175348847641188891936311859266941383512069423357081531250708225859785360138348206317955533477474547125480256221938901811328721090103681029634339130501049854198463960800635246109184824248508854166865815228408794521755187599507936947207421748228906386295866224517546141564049997175291606008126920682737091065597943115683964391273732514891123563536117408409597112074986723028364831955280776863219859660106987547064210318499720287102014017596552566830758464512921222693833558491989396657926855682248343021289198080427222080443006242528629840303242266594784436909974942711188435028194323232766324902078633265930432311022696512341543647558447320258750830836916596737239421505565077062415259856589313329076385817803252459599034377766646768015408517485950761750037826743771360407696391946378430461761698949181213983256420848842474694425418606677803552205681169287765463842135960537137358481178246741164399554502782323588577851155972567139143957476772349814306630956785253653016799541080925524370140653777637608992184643374645683058943556780194621614875520031629350992069765829644050044866553653268588967564734204845627810423820081270521732509350197140757831344469804848175371861902560007035566330812866308158234868835402966519329511223784477234552685611157617959862794553953362910532188482141576779059762415982659949568801133460910823608861071689894747532980688778958358316413230947447467179430106487506631732008596496857645941156520167422416428374318472576350689623890663815297445242767292237456750932301832891533915649692199441163453680317356952762055930366375890876461720214370805565212894293822954549311712112846117474204160192319370607510742293911369452732235696704115180339919818529013468834494422434996274774837851377052069083839769841930937301056412085668466102681490974621629268596774733084255958845421411322151736091132276681116199702282471863488394471218562859811288789703798257426092437783857700390119031734211783003460488587165154890804687392334211437698998400386870464486008861587548793549136456985430326628096123715524655389018541673037857003470989805092309519844801438162171788760664651816989784871258977675736166944455034855153396386680354697319223588984599403745289373970531837049392638736621620556449403879323388418113805560830260279632151784148781078833401380244183195552602020021288497524699129877973304832890932973761799177460269360954413719226950910492962905183988393327761724368003400876838914697673507518531262892696232073733844575332039158327098084324793585121782622651357175972597221791991311144687621684284985595970214561855018817661545638330321500196794059499825181604325004587542759350188392487003032825485299942293480349717568986852245068794142584746055916422040566414299000833480095089662015605568986564172050809268482782529360798176432699633954812355687687784929554782473805909346917753366358660430102573702290253154537925405676776114903952187320867986454753121809237216258087330160564409366485777598356882556833511652550721730085612400785828525624448465555646908808494863435838291202282914412725337064610109320757258907011484567731747270028204189594008667175343609853863927372756008294965360596277700386077665275492977074118167300664856869610129557313374913995350832966830946708507348502259515215831921153308730869966670432852386171254978696258930042032563823521640502480795210923466750415043249212089202330280794739996227124728440222452329312583885394829600215164485461904225388792166816041293465811492051001589511446059234917319804073876014141670071928143809438529260540990064336547141295519966858953463014091456885482945243955871404305126891216725143920590189305343915996292254959175834952660722727840217859561940603146748703739961299050638031178148465170768536401632953784911659177409971545976975665842617273364055304976956289260405092091731246575885403890357752497937426427593562847390113155373325479955827180719169528946521957095807792540710425826032635348454095805135321262141070494932007960213585955658628599702905384413596903915518166489190336308963342734603239454357602952178684511473504293594096488091144729879952209698725674889258125302016345840409310896671173908173817632500539824231301763103092884050598259019729973068294703214687823988305087305945793145155343098273043831513884619128399200627348973608292907572444886018956898351263605464057547927324640934727360422424554984014207648970394575737739315197749283346669016285579803383406853320531874616155214861024876873146959656769854516079190730788385283010212023107451765012131790240591118282109518393968912600752219639240686486857586011379107665508563953607987187071578334052344817328890207553888390651781108900336503704790229569298449899193712377438433346303449206607249780680563458866680119607821993705035461773875132516691662627645050651432688683753309454103140873048370411216044084145437687868993458303828401418538638902040349098596392965112408772588707800441817281091945330518560806872043645643678035235433924822095408243014525526734304972095621984093129626229169123629124285993452850755356518666854416210154594180759592676989879219531014195901936480837089791592283198956743359472419444417761130614017114020940012188293157191379680682261660115564037162926246369217677167456642032510912774150184564457507890548146490698571391023742643925995547378350226977064691970520220503653908050100061648799879583008089176148862817845703065610960882595110167403155902389946215773400090691356643890750077708492878371114062039786826389685745081447491329812795209631521098727181211584736032867354356677404140668484141121721604866806617017943955308609623395619939662169696789915958373178222210445544389678252674435000883644214726778074128073190275707217230661069687351853604256539044510677179779038392970792163008171415297838397598877352555631539605868087971125270977511845808004766329310206887729354949463326547034151527809845200501791085837809068776472542611602039447152704968652783124887424145498477590422978947606596324675802646779846732269432564419865093760820677119658313821808212535439528234190890605432960916691295181393418485306636364980072609975156588785866472489420350416414173394709817255079220808326826185770465847021440519096047470797755752665597861913296636553282747884174911502861827693839893889175897740945729024988680491798969388021341761363325487561187555733677665179290523657832948865992460857908695480610182177586816831515979882020663655597173884008298043772586348214087356703788417740798688206314560071362477285884708318378194375255030675062479592117565601312293111052473385918644043211234472321102839683109775277224896580071126728310512059550258702429429056085301984995675129944868794017657134549003202101545312332585723617073470052569504973115785678081016274826736887319105970274683347417779695743476983700151795035548420584709382965188300294549951515380004221449111607969476528562015578843913148111398094313578688308633953651308349672183926485629712322725912009787666203678324120959399148049150956518617201993047276698977040049434224834975812537969157924101068786743985482587806917063750142647563895214801037959726149136810426073828470038993369472537895178295194540671196944125828562083166838381394642387863186400958658861151012537825822317708196945990312815720554326980213636264397548636767079490861820632351745311602426918500730929103640449083355060999357789541980000010174612445293069773771947304901572358619598946278140983212067373046261404373500326449895286829388285646604310514259510601478998516520001249364933668752296358385535262952489659010238670044345193417310904127784444475708364098430185805374648956753327748892765238391983835364270162607194147669199797189637879362870282483620060304818190742208060127119257684966432982436816496907353377393067247281289279678088383434941375741026298904685832786307263068393752856370910928461096735211543507317741538022766119097981718877691508340861516313687049007979920968143482898513900558004020564253495123346106813766994556860272230566562227315827551848348226093009114906266461763250446211570694838760424181581051361445494906043877158621258879538578860111210748750529497462511460170499577693265849205072255826569336391661416787782848366870561014051910306801391646448249229287787265111664345709601971463842825971587443840957812014705386640871685879071865438361675336016394611106431797924401613642101390599904783366794048507389626079194017567068265391805218472654830821325727302428595479202743849231014961353138936921120552352676586169889319257819992188059601453218694579050591199907550743903193037436377908760526823015896491362138578095706995915698877794136641473180136809970620671547075755389981096264606285166657451206897804219010403841159910943106966689222697580234663021266573096441723921360467783735894905761815924491532148636364406132115163177774217220668977356640367397495067822080944289611395968370402784345769124644725004636187520181903825849742809949079326340306648141226716531204886278590348444705765248536724102554823364098350142685206663930675727423577825695504138895665163988471700337992118850189702576681370697146087665483194322250012840091540640703943250262584099022399771594333181256102239844121421178743011628678212189229818970873208606075690845152023780638553399763670458006568079631231602720140042175093096202030855617206491390999353980969342390659343391750546647904709244726469483776962702294506474809775359961377221361281588010634840530253023813169332019454903286587569982317664884502230052668846939883820399855206114391222301954231878619906749665862206715094723102818546890094491757513120436621897092996837786456645498898361936724503916743531380011492379170949320146434772335255957554969259431293781474452184155951262029991949447099378811747906451850306649929275637925599255918699421639144043226364903182118731514727066489768138868116647978356055347885145337852861344463042669228742477045551995017732935431042884106131214142429560995715464417246293709187133960132870696025596398735146295629053727900430813510259827460831670819358301193173134580980846863715542139749268609758649769445065980831293476968015257777695083624251652353104776563330812388871625389331567116259624520903002124632734336518471353644090888084267270857842287687037270062206271583371067483689843403524691711652099062923866313991973585095598917868787948620647403201006662384526514242496975129823264905733619199739349949390567601007136074422498883080960249361309716598498372022495562406808548271590384715664692369309340753666618543472436820708107538001851431241870440010981069844438182860219844641411042563225394997430364595871810619952429476951409218837799748832386849115562328751768556355353815575185921690608463900667272720313306109025335644035408457592476640830715009930759044655383058674400609569953493689639051264727994366783309398924237099343527164947513056574001697020130772707777058982014228039048975403859724350129735041006377738563883662253427661785612716046909053369980512968093373546787315159291283303408287063933907120076038844079084329530540517314272463424918710415816418574461734283477315664295359337232933522906175655914446365894237606355246098873444632799776874421549858873597224647882485189376599260331874073163842895799135662416578927447900671174050330437605574300175780430351635539125390651071482220600797374884064419020400309929748987723566367988397187409100567362208437753211779564956899893894219872415641241057946892297749807745268838827136823751835284166057105636113111441766609913752065724795265656511531953350508573241535575535412433278492912668500807097100519408997116192533666158825524639894869742164012571624587776198283947484853914782377318863303904422487671679983085154205924006247115701064780048307695655729381144804168585790273171751476444804259131389790625731637478693036279709524355645837037572304070138489015919274415288559365271234385092420696373106605598923233929167875111243814294200285472039301390781778861264442452189524176121236019337658820102194001161912282021313087428194691616798485690229064881850514310760742005320498506398404146328736592372206219740368171430478815131928876054717127070489740688093951434416157663921972263295158306529654639587416512888241607184130625250953948357804770484158705890177043049220801934465103427062287804318472287873843701043109497728173627053351257555804154011899503938739518298287412642053782476697329918723212129017705264522866208944800750654384498170914755053330194925544382723957341649525246041559410479450448719269115081668133935625920953979611323698481049727221751367468460641332816367006671820844433007429470139790127001304176666501659021536734354696059472279242323766804568290489095616478690266325380400909543028168364209286973694387508116756434732860171417315146724075683892859821143230671128549852984115755658159841105948752499866698254131345243913071780209052445098331735337980633589597635360756498077364594613355980273542006876789575599187113172241561408908736445971389774638374851703433322519605923052105807427144395402262909750816633058292759601355706764930299692242015616515618929365365280569431502155636376502299128828222415063690528585151137810415907670587802845610165914111428981594780564874465726231763876396858082872533377976532955128382285655165376707482056911949848724160162207829049924397137243350772969536882705543108944802756555822296703819876670963960919351793142819770367744530589152149145696366135736003686972130759268882388758114506614684816618230964612871896178392139006402853140833529635967329200413595392039457301523040189299984136847451825822183951419154698575537453774980163856463812777817653492060821239750715399735056185861441702633308165216770132845472076824649860642055743250577002993581622571079754504817406170411666783342803671886647759213000471610750587464231263015451852777344256692940453354775643997348122538940707367686818683804031740848006049105721624879352317450580319828780928671690122623693212231512967323293177098080477753130419049399919791456579066299936693967234410231897468903579799603546760706607357795550327168843937932767081461651655566540594257562101965756008635620216541306677902154915136784707909090259683507851429722548395455272974312503120663870345531057129873453213256784163023441636591290671046866117964979812398126285789338990384303904965215929557215699669024735615311450687626244315714745633536777703360446979198610429909465503752940067690940737917905968935075421899155548197308971593946657301681956132113265246551326376709619012137928159564553003125296723217791002524503318214910070117129601836818326291625969987206963582421102192187741518842396368588056287152720144727587321697563654731735523928547031319839438499195260108603010113804858628622928344294307849806135862271029257199228190606017053542999660811850303733694210361366865272265838360420001972128021598001431900422451742180474446475836124695468113276824995700651752992223363561224990885125092447535543840222989641376043630020501588386063405108937010837171149116200585475389542720919606036207335702936294603125464061876286992030932235984647747928529323873704713269618995390273163839701611740850291914932664374660622484931780927520720308529495056512914063607992928888321538176304313933280676130844850440811893340568756058361038541717924928965929507978422961681826146985936522007027864478347007605797145650999446936240414468037408893294499347079150749256703613417384078783614210942434640566142324958441881906671258742277955377526364429541378962837075245750444029173383050398616982321069383029526532179154614001169056860464521582693646650031325561494460364227259383167801271201839719175710464335964226309801508130394608417699734996489405987149775832035738824250474525168088411839562697266282463513953484442331548044271029393830582480607834871277672233036295813736651040713052450303939075514669008255981623130638450681034583785076330591195627544520274889844891183201825702011990812662438474266687207443951081056731069724378325903451989666561196667398514553268090482017215852202598394335333043787969034492436099406039044662979204412261605053216242645893268584023751418224299903911194792905421803399798766204306282957702769663570502532682801353600236800093630250802952719842832923482819627800000974181836885972383389347766202822745248303982444342587737491113798324761053288389752588764965766405725853029355145113068058564061935674014718666446679368915907586207105111448914900829742427551788502713390763329799952027701407059204833310630735472379873212139678119354873794134081471675111426497497141599294968767950934083255694897001979500107885327052721097661138325189206289445285873153434764016121897388703660123234592724828214427249150696592574677983691810768136868998634997064188126753174691538478786025272474834123682328725154894368673165149767083751278538350738200636724636628112372674741626710029190340079627764978193169279190853066549848259471532139278633384699739470692699201522181894053332810320013409030188561569980369607299333433881372320614168142393955780491802367993848334598313119301061460056573901496344657808892709518780739285699710393144684633591506424354812519312130911903434547531175500292436778076480710505413321217403077633955278968599031060854322464150742668043130563235491859713045497825532692240199578363156881216223084557070630068584317632974224874387709526163505657945168624447166886816462859884882951887858916595719055976111676046033543236962006394040593336569497853727070115805819363706083758760202323366358698347738555812802652734625415410311581956969409501722141578893822140216690374720995014890071928647243382719604088456201536823038999242059063553428909504532124799669174312091268948262654319245081320537928447744459491022198492748462770944600050366571528373052763542940801251455210716727764271602025900188803209248731720390919524653429287520562212193605323067194150626323501593457081167766995321027420116673644020353678293227854253056676460248285140662560584923791252554762380157577004171261616596035416881073825337312288852516035840558831144483517960254619507960735292568688164327708476412323385267909053178469495825054207472300184995412809479823462536002398448156132238718818046733157770813910702312351289599246175570511034732429387382369331249769355274451468874910870248993874272760814396792505422706354203226755233711644768161052021602036332534951111133538403956197856652991818703316891394823154822064079457446453228035342348162022541038739631389283212069148451505607959208597565326538027689826080469643201950989200404922414809631213877752056402993297812621380341338299253972101483806514424614235231822156178406612550330466271978265616930909281020107191251525192367739488860939482425467930165871564411126819517679776176204074620477777290305801278105746769303567765540520345917830214534456131325914421226072312053502944322385343474760883830343052066121193241913611579547800057896812557723271890555688646029438291382572516433269494020336067665623954199541307990148648812223738195618318696977928814408520098972286388019517419064887970380449709698117775153590907884846162350831776422047877951942710707888945961977106124678756453102117331645179175666222168560225611186142958660770162434499694148165631138381460846860544220637512388807161301041843206105296996704569055841002778365967170982677554611607332750802357008436724060133554990967282269492508922127010533398784316132883116907397445294910646599078301054269429647073107266315343959711433051231304522989476407820373768830867325491444008326502040141979024865043066900135014333894433781661594396165507723007637263514218049956450677061845178580623344170143751325165598231680189033442476521366327328862578482164008805169075016919515003619006215276914212719600775337777431203130222751023257655144071458284952110389391140521839026206222790254366947334173812859060703691197796392647589627344374131247728951783652512424423416652444410676544470848291218541372160248978006653013732057077009766822321515671170818853031458699424233611376919429399798488141902794473806669567775785277510802475427432911222817901125649747976537421748909992678336244167571666269808926563656794561799385204759457352596133557355898491873266291093344396381835584300146408191816971427117009107424396002596989713397187074398552262156601933582066660564042501974859267014519786202262319880050497895643834237625333316276930188089678664435880372927214102676295619456163532637733706511810869352712796944562656969077098848911660916533892590712745353876059013172700532831882764175713352208726892630657256049489905075723061931908559729326853545174619267205674469255936264283354900135989974147085494990753687143148206134579340852314898812489240969234853737435437453304265297907075271066400839496071050708650503623255112410655229683076493407027099655957084306701560925241456616648397182246851602327721965308069851115185776142647497248430135639190891272886671588557181388425223741285243937783328718839706552154704988804702536186682722346958335983887980189042121182145973206042248582208737444791163540804087347038170544845796603607442895718107022309787406953575697769648460778353468801937083438145618832475724549893428177027162788301278345562607796658886898257784820901981481736145854969470343587537273948542621645549666960098184144531217099009400864144959502540325127345252913082820415783299627640002143050713787602498717017858718808314957007909003657384746324974012385051768850994725606633330758211275460808283546542662883885616725409880682509470665143484964678452471176513971671034919783796334238094346599188460803540986970508730451832969198096287394404986486644330701579283444368922162244397306473180474039075094115484046362725488204864365345590745398470411283679969536886676926723429005529151891817156465922675991100295414436987708961106825340439156022613462036603942135540987804681261679730882544378047114892018210020665197313453943435822038453458354407669654934512699471642923815238386598202904823707641819822719762425068666326574430401363078370944449527711722582437440145492686095448490086146756958471137074771338609039367180588380592256879317686068273171684832871289823036542473301945173098207784675198404151225642848729457846864758167628787049434713768220329129949754379394907382625237061383231492419137184886757472056744324831255903285984397467147191372505905034386204409115406600216483065891204630624681761495274188699681802057580836673906852002406870265369287827819579765173544964850545796922886626159271892057675723601978067054410890663967304139311503512990168601949510559886778663726605044896904668103779442865516247012907868039907318267635536511955908915693386462847468852750391158258774484984135173486335869943273538525134792850086214046582141266911765098293631860825778600592502122479901190478222538583752601493793136893609995281612364163142117006160792812363961882328394294561111509470155750498378506284066986052680977671931243175439193750689264527266711006236332480518518477459651773884785198980890167889640304307715843312952886927734406767963271542608204400771073995613406661375438601000450650693806767402996606873575275751075698995977346964342423756347793037179308234026423001945226024735274031770784358574921187392037837802650178670224353043576816261384820274439434511063280157621574522544133863709778788108612452725182577775639602168494177833765702809129393727096169819892613782026158753801870523853985285717192790042980304311539643300442314375769347208171712201495027841833010797154438227063393009956381427484932243730762797093475307433158637810358355764628082551854263619102852809004293257725092777659226804556944420129871451576732198422332175601653637318132069835377115542397988608799824611921179046139293024523229237222486488829444326958495222234513186504691048588969910290180546394058182112067550543371637664459057249154629993508861597906160865009697328820897913608391174445769698578463823944992483868107986137163322060341256147271569819510902104322418037259652028476037037434469872929690603383257735122260921543464052890740190206482732139881425782737346976294012131287162430795757164528410624740349309048908202299927731040656344425044738940434240128672589247809418657786134927100390037094130832859680425250883322863345306559791010871409499440805566178784579054177688525456707677748185920597892321074047020983915630219055087832253523795658576918832139849169820637609309117493770659286699219453062533127637211062087602844833555582759440005273848775502222608723504657459211532046357847151959869328653756056834965860746740294378080968431166438431927179118904375616277903459802995398592159994804465693849505463295904332412854150234467682431725885284500591476245505795795152554906329189643609825646440450462528164239850633692032897645518069852017964124850484904511436375017054846858690582515542525414083901235654450127514165827062192881352100409541066206469750398716213488966278139962500799988659274248485475202302459363564409178884730440184785904133568342369001147653685041334343213648816959913420796071437887324328079130755416777241079042405277388009915897355507930360522511367641965300702579491592668650589588991493913246727116303662158820707139560681493095643911423711096391164761083527188028041143167509302527751021044005852249321238771855906367854900397701776903551574793480689417645346590594990805056725729763027124762122770866263356351538138898141112120811381076793142483987844456829029890996698610945379028570142609404405005597726442544946636939031765666566648022458284005350248047270824549788144016834211054319295694067875140702973970855234035153013179763720882475564910096953038818771741220230924717263722042142525248927655009218500912951184290282727264524193406295602348277306842481127245144041527694349748920743713730445314549896248044712669164154050657022628793149324856702931229229036389641510897660194501102365380886135239658701196772635037751994791892450398604060965703519221931181004570117963332471859778822066460404779763698153047871913378216470687919098675254879890991558543163665705532079986578789730828898603492892678469930666488537229804740795671554964654892751815885790639619072162890716144856562172298597419861701915719459053210355214190398290019994103331456127240941158019718139543106076657255399358777314905704855729038975129316918656078801467773955435300870700355344956432646151451147541203447916344875979178914136843565928043843738129954445581046168249779565763242477351799563717572826261027069628135258373108522936807352284211695041540501749071093325332320027597971332079790663722897047203932394581458779629671104378227575723720900103927690367937237176033156933939567349772424754892602671092654303454636129221579800760054914710766090963290457765084201731698003352627769774754623363584939009068971111002155616016895631818864286080488121861645945066861041875537355863118099824675028969710248226418387681257933705273481183370657113956336129414322612153984146496730145676594184605157853854321125112173654429933509701915359758572974136331814514498278571814894519275548632923981197645839282916538571020050471191913640943911544539901493818423317805759038551568486892899808619874404528841896239121880007870288662782474149496235018720063752056561268115643968490326847506781717238623613586070731140436491386337018479217518008839089937166775341172027854166609968591883605362890209036858802144075889200922457625500747003790813381032689988426739727217290741880662191000364777543838889756575632706114217607191941809849684158539567346225146098399886206576742327432084481229551340058671866941059901540633216311385798743669264609077487670358611405745637211989885113619487972990265587956620211832320383537441033653088109202099045023181316794492315587912755118925758402681342259643888543842105290202087317355194164707507819746116939998070224259259234196272276691720919140928275942010470720611598488984848859371419404666483737585322976473361803216878867794830849983547300809182092802892369848369257650501615164336052277666924159967554669376709168600072770007862580028829959917453519590781426010385656313380743864251790258675585970157982629766100416144902485953104590464254977794789663064359486709635002711489701721127958224648427091054530580218331040648580248173903260274894612066316073503210610560603088657984729335208354643692855612643746995809514569638493458543588626022384048469228598268489809493632153855102431636324331220562937384417123325465680343432733633312263212794237492355190804604637003094358758015600580833308664622450600460428826075755093992447150163258104878048906450773296299555513862953792641118475437604257751498441481262959823833174276850612471946528858609730231262599097091650000622973347153647698150076122116451717957619142501622101567532536130624384916158340729309166108061271929278977045760706498790574602349304740661906708692170345406226767691526846462278037541464460380985544595144312808518444766486121101437780420643927267401956183987178537542896833230035891500947663422993589143593777939780678769788092316969404032211943987843018983983733617880436354070406120552514896548907643430547498902741436573372536530954214906798645793824701617944104839621786811853625951240024887256302992726513539209793607237034951152078650940140182198709614754338121988739635432714610636371631169393689541573263487903518127680432936412404025697168955689448812087441509047590232771899230585590619763068463091421230808829042002885860785476426218872270378933298493575388074895996853115636550041280943754380085168636313872427643483488748311720845592182228749732849355055197711964189434625986522001005367528581809330075204245664277477984427967241656347780327829588108848155157785546687375044650399471251937285918646979545811382586150974876470530967208250376331156438484948421259659097394028884223527658032173396967543878119177035514145549840713619812414383222464628035989192356600301860405253845829573166437221243246383228107544824873183741313412260574159205128017691821141253050162551351779658020051358791749484223519758452633972435711009317886998231909255500501727316623880461313774466349826777916331740782570338451764041797581796551827898640674268329126477847211925064260195547146128392757633817851122886621056463363102703430790858609614053783120211553029723467875918588643369613184837023764889808586062734198398271317939913855715723370926837579516759155153842053580516739556277199626814581699060763517653939220531119605754991095214159444670941534041002720936686207675864478139192308898141523722116917604905415055405751450474213502528948736435247246332933360046618856694758540635389968245973658384428371029574719564722910002894330537701085090272233210217944008384518222515935459938115677038005985071717029743593660087857538665299538329424122460214315745217025101721749405533010029424681671820636736216503096425098965802852471851919059221669362490055856057513688586647083386969112833246316943819428905964672352229842671905155673945501855899912025805963669897008615456647454144049538831315356389283277759013008982693554618087833887351190194981342939326213998684993366384751493919106372168823543200245529727759938863107615079401787157446117632110132495062159158863365363676517713650746169829414808090572661372834659879925413004526978405451036945684458325362937408725834230676881295797564626788034272524515154339842575325115284639894785140744608804655828071229602495252993349947533551721266372263959743785125976803555321715732323492402237480409034967760508365106848750134679405241162392355605498584775558593299708092034701378682415061222582885200421051398554615119568383322516117928992694413733697916692375064647407868737295624520659394606264917424381596021567668407166853527345563705859172925862935732882195823812568100195772318294014001094774715282620473781770221634091449628069809471710621182089017357381504773867224123713019327393158028352663494360827953871158167925375326484975815540117487480682461693759341611886393307699551489312157450636839245274211608776865554770722106665913354889712731596029823111839054499246746124185291954542149414786062647512508811415781036934199025353054764782921677685239650751910947689204308304687913331454777786537092966896074565019572476483666280915767075424528862953980877777115981148592571535980877571252697075786079294138812048946956745195771407821150696819279566190044448611427561279520942380634711454265699559716540593702166507046921659808980903075396766578777731913998170839164890039119725970500920221769896078723888140049699016498012520199507052564699464446005800185542630905984968975576385337842358085690045424742967146462362668919699303506614933370334736710888849959395712636060085235591156236816819314464362927263002610288037211051577403054581027811556026124235335723244214485799121649177002672779109955736205687384933223141288641566084778247182713938176830608911307010047253181770146246008725729261149735709922604362159170578003812276263937260986643577370794242813939265829381036183475490237180648042075910572166546037339781728519904468388779693203059746618500956366957252007825701510512297256589747461644463374054141614281432423135960019908415917905272187631973196836253069573993123442850355467039303449935040161249683606623625481908489063258556636759584029582010001127902698456692478617985815181768049089682784473676282588381157367829232438370848983438953387694927710480605612793992911295705272865323189299039797394098344400866253207227273110327682970496693027588034574539767567179456409238404608992055204106706845456276005628541395514118708116477135589197915533638368226549802068057163712542661484224718607033418260375111501958915161123057899254089160952327945486204749315405819873307139841368712268190058412911952416961313238337076462239842103007593484243342487754386474615091481728961384509748838508233232762280005171415101203121736352674149227219350388651381181863440994899174618198877885541353479606551957690861344319787789314812250199865155798684917730889878934993299861976477355004043955789057238801669121624281477307773844598085990393736356545676044411445864510016274917275705636556424143822028925590603120935326556865464439943857541246558082273661956611847210186608040470061787277727647549069769358934583591213410616630458935316590388203952586219668390995517806399674344718943024622692435685629187419964266096213420990499094628467903021470020657355960907266645038977542996805537435932838322398658602023932502544933078637643910551238887999499674093748267234008007684468224965704614166243377836991245296404521688656944033444628518807745990136762039578701043152282951078484027412462311064661638256058876238530595755412794045204734438415423795833435067371454409365064698013044073276115257036956395170344302410037977244243155213628632807392454791637078350303296034329533079979844016042548865270280765582952650719058010662596692593336613772992734148719490418200559513361049061191213099350137143251417539539949258078787880423307348046934424012071745427987795011402064816336247896298369616823538766048248290265250974317537523097924760221203130599580415318028829954448703142118714933035678805310226723756188651467597695859431859029630816556832940695929281822540384049959295390698186127137816758259859593546091896440259763631822126600075054372133494994756855898957060180093581036459043864935640621828335116615157605593853774815337845083338706465702720332540365381449203659911263796900834859062188471435774566281655633683434797563968273254209473929576670440455711388059655684530579334808817691135436947267732868309619815912926449126418030454429626525260371287690632564384021661979594245977233883179358665434603249834882786539170167774634431788297057233296223654949505000630534601839736705836133918504585044756046619960427914285335947896676570065186810227268189767066039211785450224870291150724793151414419138476788864190301359586065649633032074645773075243090331757347434492870214503005600819165510689541336427361235961407780406974042409078028056941440678713522516881729253813863700023697170108836401744055729170618930237218910192175673806304735598980147002867643932100166722589767464726542872167429612914482794279855598722192691453125349503279300320515920292729006496094885924879146012961803425906778437867387234789171792544062224053876907343117002355764144416410988482341990163011457376999033122141918501324070791887997331350229571737723670368305616016439690643771249012878937281807385577518136472730181854285373101353912750893667667739604822984329930229428019428255453475394520235618771538623852219507620346683407172654704017221644987634600633724191683093346463761879951277089522875460993578514724355586821182440677761589188169610072611778106606916659993801673969218221226809337329686766392338905050963895422028933011821781835633085890581954339483152036605390654494034205917513994801356444591474838471686349691764819827481590689838217755746499936139294540509938873690919492041250234533466536765723190937475400452748196671015030200730524650130447583157479584337841353079195542712881146714604457761175982727225456792074950259184826496180672050537084493705263311784317365674998983439398250872647983667635789200616248160804708028305178619170397708084973985509447357019958273854211985756258698431357185289880139244751025927780916788297318875317372204362543206907191401816277250405067228718366116585878161967468266062791074489469062555607505732339242034164201340457390060816221454146447499648751099260597326902768978147346111181048336703597849403648875912777674239585769498028418194013593340495107015674487352361037091081359952550008817197562772712402258313972042354993295848983204090216340714083845292961547734842063886261582033206958471280157501917972483543656296125719070691168627716718549507085645286135107493051038988394027350446059303302965636931396974202028819883827376109527546982313491871520020155390649366296004675579743262054235219502250486451614074855834801408284131083147508407460037567470951586470521761651108767852748142673099423557098244929225187929376184457684652827401631228904773761007996177765266528067778529927218101990621586917779102422904715993249012207287727149860730075847171251835716957392583947153937934606416160839510838012970408177173078834837724097391842776098397984912217700156893494683243665778080169248530314445742299280349102289530924438471054852909845491122886215235706622984025632162192002264657041513088670229107437658132971801841501573557756134830485524305944818814278166734857932031579174116599181694306990480041748116372840430030528033818321866851500132717721977586430560958571581804866522187116269600733535562848573899676226672210653398360788540322811868488313290212433791079962866671963099086156403999300131035635634011466168774842847318656052259616724296899088976659393581935294351335166604358790304881734109331296577880311698775004522595725779681079133577723315112478868293706915736853005149690584059335717805979016945007338964163105262592852881530755791200910365896285820694486746393078798698730387062234003081820898868966687421757155681859136578868193629509279941305700836822346925379983153561407640008200772523035824611363368585546189740744230500226541191562424851499475330470322191867960313998030586012645993680241915076333390869392103971195090236859032882164790787371062949038388183543895583950575001451223634700728507410470242838216454868457077123387991457559512210770784126790062309551952834028425682297823318338761394935371415417804503015994465161152512295003095244499904060752940771679460620111417717614292079060596940296813228785160523197584558629993265611527132237816183095069835075336586861846706981877500748616201665011119520639017242004219809670075399211436326738324029200617774833334823617986973621415220977762651460012710801058780957642180620012851608569366522084760323831875266053132199142607166111227803210139874299683411831986360684956115055457944803159843021030991903763978064732453152624648755455266127890626657603640486048853235449665214815502045987035537561118564486499349823857045269432538069171487908570389308896318627310635935887808068890852892358218382035076372976716405944037326689019608962785158510634960553120844006161381868896588549351344309250400108819050618798030754115174906380869787724714988902834846283832814787818243847750047268665657592482816150482613560777624561030944829464453971910265964508978428021177904116971986728122802822496666314342060623707692547101579580170372890627957127568318691826471039501324028595166348835151127492096226917918486458397148626597644604349288391844318751841960834483255798883358785014641228984046600077797406197989443670480771504907392334919744424248272243374779112423875469188282048977882402347752099023078235455748916554410096148480939524324383229705532981167824103642217767975718491952847761329196113013698570734640164695494438909876995987136167856230821161360249987700456921613067564980307821406836060891321841178111774420951059443570729452989555857795269939790932313558441210397812622585750261310797966813863529477196119704249839564220091649934439649391290788402478670911309388694099242527537125583220366584973890831143445791624434381127021363594158040241649094654680404765999856619023978713502290450959600001332825597003185914812714535093011846822286854735894319824889707190259488136528135471790328166098850697178024064811950503119240164272758269046200911558719547311246906963483944806532885244505266307263316628585697145298623428402502853401748241817964541832525403165630933374269173642321543585436421126231188786777733182929952458217410756861744373830091927568474879964908176798590310434091121552482031142546732195618221065299614829609313187763589186838079194859689207556992536201115396538537055605528694537774917956970476794300281948526730821100452085784144466309113135962802343628489153665366093919432348956734854198577252332878509593886133444291432032017559115507157970983811015178940221897293440739325724889305800183941920767825201790755427704818355272810290637901193493725691908429679479376046730463910311337845760214308173920614792432303159203793036146170169566764636547434188392996036458267525200982982050903780051542253904767839143500864535769968301577343608774479872996994120997134653056149888411372422429335143666159506367704037663817418086623220472742728872173267771638443500499531874613143258673840845082802093759554007519747984819197960757415742464812800367851088498261487228026972422890021283281998222530822056713213438080780458030406501893110590908709884397843439919017079212412462917677584875068830703226448760928690264168341457344503121544224228410269549578696988382472066159488149328501301083206570596027851919037337693564227592435531831072811909789985557926124573754030218709979763954717640498647527080863778711503974984803423719458229047967297974010415026594939630139312477350626026122678556432744730865578131038116460442745586178147145476040315473497364528335970385619354510746869290760279208878095662637159920056598526384614713488678813906061662525259867212547191931394344884035362245691025910454658105569318158813839020692374629680754441333587570291256182369728199672033580796527791637163111482522300815865329655684849019345635964422109744805387675705464193607693897538345250212766234491580516902973469865522111247771422055233709143318432793551013144541569620106699680510155968537301443209671851859619242873718097029634908266158040945668363673620481946927605814233943642284469582706540509186051097881217728171545309406482064790905467236372299133890608339377413266569212151412513938543161742613251297312091206069543901601827631069511887310654031574918182401803107918308970455045752050157148730873181578319276841904356037055643048954468194839933670103692672604929590971856829166506094098066451769893606314939861286907015147107081453085565530000726238775729565826059832557512291195031673495521988744474464509244868978517202077356291420454849441591183483563853388843074454027176765296555558166645549155903472133286461969512560330679524227680341857891373531917874016656459103396426610310055648293153723581830517353417651512042104594041080202976287143426463208598560076723578846505411479583776983536752405578567423241329239401969863018792781875418972461671374703524026543186599325382295841665292696113648018277415843002225591003508034337174291124638677598469935669341187544654396347107335996583697636184193314760334900229163732824904527475492552667280819920564548984791699050296523731984137716067867308503452828070040983905271552710691556648787939115595339650308077242242436706312315879485590964511241097953162045562421493349429387310737265477140139221471617511021630231437955209396534001826639512179914315140883763702784042833460376282295214895720827419662769776026834904016276428683787289678790478836494433791332943810140993100630451831361880765339839371238807116194378836306701612860942482698382535865322856391935563250243936557586719756098300814098212743216464374515362885216554047336064299406326022371961368052893159880148501553455281118429497213067040720355872053785498977044015848863300281564338982121040703469259160545374054697736582538511978184293276874148149359642669733288066314126597921722995865466689226506702671081995949712225022325088548605295790417654092667654846273662201068896860846749072969566148898381106541583893340050052132625435296256535687059156335352049857160617439459839342602069313069690014884336809928978567425517417519337878748037743495930584000156422709949852210480819535520000417458772255983255836206270572189595435387432897702653572560235291233339783687913231696008311489735662723576472213908197464857063398061424668333756111303891061697549380573873123909315241756773159493515891422157880244608642184131263142793573804457989650320079851828460866077172715201256173235638270286186274491039789653137881847047436583081927546503500381117229787397458144338301665195808611646738128717823734084590802719466796678460173119206201283883350435728261039707617690483072351594601098617629266828454967799205264757540179414519825225107756538314655850242664392648883469776129787221039554624559955018561862911504176646547449471184865173466529289303205823619467178857826351716625460755594101664326768668914882449579039304850811854958690473523030162221393568416788088682453250773538405199238486704255060670812510921083741870058082799394619630897389913151010785618736270304704946674629692498845443649851815978412502940150712322825894073850830263885967775048814592088101399627955857996741750381870147872004798101707716913749867638032093917347704295522643584689866925659492091215990490169640719849190653248992793570086463706671973264969217579793606121049005716415176122895891219240446814039379264134271916655079833534143054427735054428057585793535480257072229410468947453393469985215982568965608570535688787900475106915708352805542157022246618886673585156603267744881499855941248346707973470029087261047852614750664969688719368120864089626858634926677204548104598232223213390940961268327731140484914834276560617289428778194885740437382643448255680673789651588856042557191137201335781990039428004698724876755213242432164414755423015742449920870365333077619297634450678047996511407863277490199917419728282610491743543195480904367245980946067537323520502465353049756182909402361439576765249206273968915157402523943008913711210299385408459685113992862556924844746129847136140778626680723806141651959480687060658119736381179921975731788325445445711776463684088359199872718778686181142481094454139004116512226480839217705183767906922664743762629931945254866354658366185861599828698430592293994856669127231964946709372714566490178187118662473032680500348057109322671270598895234977969607185543135148792039010916599467389896679323689393023679940470677944013883805680099244520516187824902774780841296390693085858484652019487853792517766905371834474579486729868264414934212188800339329813168607645500276798896470609758378513666549912469448619697729055221082253373436717545336410181375010116049486243290749388808437300881063097564277155577989701244690758280814964577589406780126980557531885899661734719235499079824660979097276243389949615613569521226933019498314495253937963563061810122311601226196683202701747711766019968091428428853948211459404290802199428865656712897780641570211419955551333395516026133183884801616301585698717832759204305889036604692111048445603610297110301882108609953119767741212782659637486782030297378065847229050080668684496887248972541819334118591877208270430605541022623746983841468919343078919527787859581309942323008691813039086547051606533451201640572135713566515648904515974149571905776006079117878988406986201177669717040172450835714723393932838917281440210415932387901087981200869662754395877499568888854225254907984153554329638453761475481665685708681124886294253915804779241728697916533472617894158273365504488830617975071183487808352436346369107989781674300223597915309359784139184662484122296050180069170677418318594329294243298827705924652708655100300030115694804049952649303295939649745923537258419774909502544760004108200882613082810382834252860727405085314356830114077018141819128118588061846611560074136213785945891544817989443623660059069915438248995392438189416981795722179113231063903830078276722087540382790368074621885861645540561581380805467568580382736179625928227524984757848428894636011590832059869260884194462825309510372142670415621674230367010292880502976956495829290682608720034948967416835813788662100800023839548879250585462275614719867040114075129155741924464324060983248134351574268504281526816067532083063621528915811378508918331406028253304133720035826259802363501368552293591111635551859258820619515413154312760586983598999952424193370455701025886278793418114195330118259046547900075790002648703610255834332969993920926963370867299167051698238001622510016837547053896276448905348953340134570684454613543633601189829119352455552308351005252195087028845785450395562840289003228554002311933259230522139670301060321375773621393143804468199975330908785645694840809061133309239500281669992237315770053233403675841765283356305798957317369833127688887118431453108775584638178443906080173108473969070073049656804826111058129810527504287267536643232420046986077111559697024309786733699275263633009054168139051472271908800989635610263637300209087676197803945899579609681452320003086166884700552290264698633687561809832126712952287922586008603638930724690580228002423013420021717818850174551559098763593773618538513832357371637396418183602337648730336454725781481608511386101188749802485390121971156283030416164534190792606716087205708759373077828231396355607113749574910695957437980044723992646286908888526206189130034577818819839530003986882168340258190234103280537384106585083382001136522684373815102248794337032924100769942304502026554635400058340267772334951891416671377405817764267518990950068706507509693492751442540357348243569765412089325407424109738428535072073949046629277802722102187374323867803490976103875385205665136176961512363509198597282637478042768179437026616882538778151748111777713540463243879160557038003815052329464001486051041655057401003733513707275881980171124354600368258579940178079675152524186357136127247772908718021615868440410806817188585028002009887717061378106707054006134005505495880618893674885203696619171806046946701323317538192892906474855468208271719394084952256819512441290491316164661304874187808137241478353495971736160950932300380334864444641640191447558991600799339297839975721849010403490046017601336490868983121372275985406368858664600521314955857686096305489397193770357466755917492672004443332444396772616401914240344434973943591232969873605455960616554888936259096924906143213445746352335351875911991914739396337465575651517694802473595629112081886025194304159903511794277924731853230172473176299319502178737151352159859971161294956358594707751411935971647855861288199946950382163110897291556807231828708053151260447130507617866591767195144314207416946727104328180507201067167382482852862883149247136148567133858241877162036946503677577618702149429549309164667002164355047657119405679693644649279365319574910509170266312335577657354692238913039150764087090198374254082110183692359312145939265828120658318851534731461513505188161663975364274937586518463123996403875767279033276919504183101891145644176013269297728536879238381264140392365827566054716436965090372970884501206979399218761206056912798917009004557333582141743008083411893491260682119981833966679810499664056573998509636235771400529858466458220190976003617467496885693901299163973648291793074882950166961903016748269575480351754911576770211283244319751367746721052775010563452159778720672061306092982036010368519452174366635167410402864443968227508577323056739591414487835425399410119734504769318630778537827112999812633632803949960986798806083523962137381705779663013524852183814483159750626342841542624377018705252945576744854971227858442732672697661222320206611195449575314949155183128656714708786758033441548513301501357507697644040691843923649856069722515987729617432020639051649958831882763083867368892182651112108432568208369635130330342919946939568815859087930666085054732668829385051548486122445829307719251529207727261986312366108982417461020368502908454339323465370705769503263855882968606436753121627299243696197939041300483424478116931072605492639412689975951494044835505298467043972893553063870841251114369728365465642547734380525802669525007248889751337571331609152344561859052406427894198490962567953867337751501436969225021900070674056630553984334153630562126268136178020796320382448225048736846643617581849529516412195856621055818667241618542934993098884829843610110268340229408496960627833421719621491098715951986889125649955195558560507402956925755157026619779123756129994751217190741310836137639813160002904768761613781224652484488278114684514870478958230327616726414792642532248807090234971115342117709533776439348801960237021259921651361544930057004707128437179715646851101690352402854667970872243337572821822051070564590275605579301723506346863813371142267732809597399698064509214595504846418592007749157860404840961648534309053511171930999578219271311162795390920868697058920789055027769547170373728781105367049628502022783365188856569201264960348466241469498106475810144071669942382996378460154036000630361520840774748656532566176323564116423164558820025738071550057217401602049355578663243110158582093391044697622336812077251549865118526993900075253389950120339452631069311283930377921642986712612762046324992507224134887936867169291041114053158424348641914275122676768939509874595375019490710238552483282963895249380473542183083564220416175385191076943578231051883376681372781151156877946566096259812704081919602798410473145799807887042803209095787819734247633822504399652900353381487022525981208806948480600224420169066295693570115807602227623509690824173499462882361422517171153300222749250362321911758115668644046012741888421863580295298501015851220156387475063759154314413092474235161389315728885583954064186538333686589367466529200940895285473142785377087407467783079753530326497164204722282728872885327813562187565674809613775442809112121225868957492327355623894689211628748661187681389104889051965523027353386020669427914393451809093826710074896095047920335937152177311088575252075080882590553686335942688950376284068283513580003805103351278983849843999796524583039149565239532824134752396730567777245362651685096978362105436117393541598594471314985162778078948036504871686839907596385572664136386156207387692099510063742091008997176802388047095923680418321280243341567840606086825812517629882743563726333910530241953229613402719456727673165206110011008265435931851111680077635638119675802518450855574730305175856858825702044973527035587473848394910862982400103201399522992559392200819855040109722487640651419134837451481707245510274582961791426263137503585358439493170814652496238988411425576931748028882379143419519123153572218072566954887490321457536471647005355532935258682939399657482778973196352568874469524379874323326391633721725498584723936458650093275751875486033236513413410166700475176293838766747652856350558934811598416491990228045748062631033415594935208834744277867251029794178848024825069363150541054288433150090414888078384741917257090064336896249789460188562525540055119954975462882710458285247474051483957542652762300293494291557456084150399901094967109161110232757268133434287965720194624675411755356511635626042440750456457083441781090811065803276140861913755702352606343919344465830863324469981335832780903433404464352035592580943297196780655023946471474183368099939361828103499606421568579394315863529134834026736457238881460879262156886001304597878781939166179778060302070302299854448375372312601581460251190637435291044085196199377185610397323915447524661943292603126325894727606256941428095170499705765538779368935026266738579197459471524768640225825654942442025644167335363032354604624642771888307989475567582031575567635410713625038822814159755192396854932284882856267922056149132756024942734143338501253109523281714615033162425863026223426604649312528076952133404389036558188859065755415762808109546506440788562911678773099787127614393696097544407643830649488393469809127212629919648563599879165166208303679546281653764733333629929461887157687381405481181057876324730891044424708848575159606994144667266972565885958490330022464136118450257176854298477461316138757380777263866313585460568336713537807656896024122005616383946156142739386273755822499313410857737181307426169827442579357715787016578815227574003111003015464786009004264158993116608987670662003247811966222333049475122794833213242277114336065998138750628824137507680505981819883790192517932548749958759327735255200208843636742793907156822627654465083343912414493228854992406910549961736848314607779617522358505021218486951239706097566968369596485170904454435030174008735474559843450630557158335529242374632048747609196048217103841401856317896366642259962515175743118691313033423807778818302390397349714976534994021163913849157702281678790174268562054819804876828925535861410862701003284444584837767983093017627746623946222901867059373287922151031357748828749739719502858129840301727099704056370412287146170757980154342670280839956099245397118061259470066173055035911295436607748669810821082034426146272860056055536674399346803112517657811480317198942922447052711187519780794027897406500971774348118688943488967153122419305366482196621363258361514591389428904373523044665084751145190905514355357533416786888701477577338188009861206443668367895062124841198691640537157643768695624457470112966624019496319268969989979894726606697580074646457547819054148478472210227233153508875271069461552887792988745039202751340911438197424644468547190237089399819940795187409169815813345884763650950735286406007632532661503959240560867535252484203995227882007224133424583348163248063958466773134177355809095865448912001767213281005166269981245142213367626577360418461336184692736853143328832185137668769195372944279373160460039845151101702361962312188317294652122518477874161628266834714703064785918335476762781500059478173052670851642116017561350728565244122262768001961670888001498918472547427460814510923890153472888755185500704808037212769359821058050958019720927849964042601596276714631429150339013948972731373977635226081535943064142901970891052730781919687910030470499605941851225784864677093482924874420721873990342675535415273265474965721568144199407476206649384783972674753763070114899189696112990968598809732769585267062534841707172161023060138666988506103288783054431562912903457924711533791603691406382969842175649872457322158269903370778923900126579729377786934597854436561305042608033732285881010545033233398108844386914827446569667728290368649680539735498954875669679468324237909733718718998145882134872058599598150669161201504209020095599509819776825029215467611014240331224044547519128696817270092391375246316374618293091118033481169639219174472774361659571404920327596991651835146373101901212695087478813977538324695637676323163058998974710088892900639393137120067319530807734205887652395148054357546203023417848665941698496541119013276230967366162743890841513952736804648761655675467980432338643086885247739999543203064234502119751247240290304178198652992722051762839177224332255220326120518872748028675698841200956919528289105913862748980149827389339988241835479026786201684499655608738299660664301792556971316350902122409690793996511209529733449801455692992044398312730828524141905246350848392862368133165742332273138034819439568414965726683546297534829681083523550290406980278937826451533994214354021752494313111789190396931933596499707086553457655443323303931838222931691321157926087828703953408760504669580926544460000530960379691391844770769420432957373880956297599945015321695071897434337238035191862043768232240991020414928524239701089896554326664153000468145291215929466457363326708776458017831136447705354136308350601784760493678077618835836985059607128615853333420635759461479958441584383312597342818257531064314327658663346924206452212248572789583141112658711805525462392132892424067473514066730739597895195642535965484783639871210290116865952432660005988025299828951791990420115536316834499351356559214033510710339717579123127609803723931242350211839481862411735406160618111756665491444415252403936003660860228397125702585789429092360145501907694276720748995803800827657239086712878395146221316881340286787359109199606847925612387221148853547201793904299367170879559266830012658757007609619160499111296413903789624103433716537983092202959169575444211825162295069053528975794749722524399539884183694102093981113514079710642958876357808752227232796567390810238180502442783505683361129584715574747624355370016169224500696903924573166312012484436857255660933627422213064323319933445806333948775633102310232576991635662696631172919250501236407013953787256391729894847166951836593670206998850432735896502414960968930909881423583566959309373656979227245580200415931640031776090148726030855697876524854972819842062938383158940746759399396323711659518395701971417868261009666266984184039650995881402640181888512427823145312686404659087269539971880964621079445765701147651596945067946960595501750334518122670535125103225944005719650523441015096063942365717931352693614420829123714330041372857552148418296679399596032168579169942164174747909788827165471128760892992770884388210382788673977740440145274879067412990723141080295577818673850936280370349026315718281256020144571381326117545143407022317733862539018585118858205753693738049279017178889276357088481498719599272658299961747771504326104577279157772649742744613348080722213810300808889822051027176138583475872120689533145704924272747841936617608143538232739192816566109033473711891720048644666206661668325704373559558556702033905856627151687587303797273566403960335209261643333243140268714982574606828557940077094859920514380962394379517925134447305532878674787658390434253682614994036873638337785160752136324263736001360183502900020248934034321054029922994481143688265200053662635973980763064928941751867763362088880371889376277622079197099346439261746168384801323215600149697909400172934861805136030832710924428104617165966647618664343300128689738220945780888812446683801023664960347188805829119413948707674248112171776914230157251101407081551979205276306257669596735189821228457319060786150593229181192021480260095671231801032690758658347703328464784971950073929410311526332181277889547026366361063170445204055679081226572860201297182994948973138016396828360721484067395378475566278526641354576639637022483629359106293370392030288370889372082906096041854126342843683436258681227821220699892314281012852419489513365890351458905084068753331164804216787506701806725441352607349582685322755013782749769367009571242674608309713657696433339594683674698990134132767198300496319217189244142523065729363139639019679969227126562514409584094930978843350636206767714497138532201955327186637972845180368427529299792451603306286073351220519961430803474503156395493349969957507765291184220696702839825651782294606528963997073221090707749156428638820076300702290476161242204657726617339689853042799247461718021647499098615987967578372634745726760835059580637021733695273187044373223761035913557176583999704275112135104452693096752606930561747692088650428261929100496654442685741759462642382123501234970294718319418541565000408446948087659880465948283846570687629200343437506159086725537006349618998033431525638323500180371790922162800150798326091171635633476531687997048707773785956627265181844634608625675258899961431616141443290827130072167966134250744590592405250778541550096250936480129267277287300029683005103170074322107056884723398615040614897608069449598459450403029149788936842803934059799973965939091289008388578832431545578257285142614242296338731146664843596516058338052648555054811505598183767258911366401163894550242483188482136830255336369355319843083614519793008076969214283490188914868402047301107157804828880621292038235941389071388781931034870255140467250407721659827472911909172255305652101144652786801018676046593536674188176306259364120712562309532046077600593864588310771682703108214701381072370510203068285830002438437601818711076766501419798991731019577136300525780501939374569287762789697872698571344883439830489857611181286365411799853827769751186163220500065087789850485779045672815787147566473329356538009483823599216036195311273625833153316336614342078107321222353862392057744302571384825103579681411498578604785819687299066680028149238664925672359013838295485612704303224039261947567922111455499930112750283132308503359665444333736316797186655095861238267129343095690520128123315481643722801897791765490457211533972733343424784093545015255508149785712348546656099411282467970992176925778908187115987082055854210135937375626841972011864003907886125953791369113786653869138968511903758399799625469232981580514629188002662165710045976155117468328633777606699852212280478952140412749974009097374294352062180979562561543216415003549944949802597079884169384393031814668478848096954909735462713160471994030287514031280996794561944900276051330941484570811129526338208905342896467099032969729597111906175841516179366267697959839628188873892168178264624706898246440442110684927704347454753368345810891686939358811324263137399636497946811786698561053409304987087856965964559809350449653640965981767464661142333438544125171127968554215213212243109615791305761126288917151033176402397438308354761697044006401556050918911560628699024232564979346482027533556825151464996238273875581484130343294140323861088044754475735685446707135452366677745052483132447316440545785381881490176310880780682079217167837361975970289713640660239800454137911804937904652984185346793635503190661717334994784772408902829398823568471029273236459253823255889570015904340163827896013278154160342890658215244907095138283674099553876413124602556129121293231370988466094806079967776240349285968827645983600461902121655960463590541987418038130897300762247827693981150250343918754903268834132810922131660986803698871500680257825081671626950684494562200623754528987601235228841000014352029128649823602758507067918690936681055291551674572680217188803633105311485407464834045289783193018164174270054129157247867874598396045964262154827368861846623078703929695990941948384546123437051170405874988614378852442099581632224513708627538898725050701722661605935616103933527676552968507153977864117728035923455917046568341498425697933653933210512163921238896208600778877719224868599833574558348303882497470644162741748308067425574556686410963547590999100735753136577330780828300417822184759044355393485582200684363935401212236880567771119934679275861181589814593316524244544116880015445525274936539358599116622708476696214750775320617830614644190938138978949754221045072411765493027273295094484632110822618927547434810771304063145713971248817457770425189533812746109378200913032688162287178834144077023318636491860974092421945645832143326245640442578975451735536773924617805032281525735552647097155185862724855330785072563902699570639842661667349429049454666893489711654190125902479917224915404596266453069699518259100598534075028234462668352803515102132858974675181658449158605977779058249503572304713756261414180345914979167513659028956782088976359867626628199425341832689510759462236667776517418806900778103015786032744417210729050844347319294016572250408822783040711308014200774188475364555374028185482094914933615652081177103897802624705034305453115467390513695342979249886988627966342489054887093351533888698900953040925110079436528415932912121680706435101981404890338869443282288775048500582561579169624764898893633699423719691515982386827560138850346412756326899806637349874388739671956026912937783996351391070141158713037324819519228164901496293349397949105285038438397871378382769631838019696023018151146814086472907931802182330605071373943663771206423576886684820410732865567731519159957964077580021984669584860440406465059016772773047954084352147785837173901078849100813163208723893668628008226764860022986274653920132792878687454720149526042101685993619870744740343154676453400476311122807139102349259084326649004541046986932129535704988678747988507369451413727881471163797375445207142467771295799944534405769339607168532269078404290017331178935127556792049360704705553018507383013571779687931382249431301383733022999714505566972337977162169060340812264569556186015811464483716874845643124062888272180556237649091941283604055922862014513618655184644635569656167844317692383705879759411890359950919272581355302107449877871539868737010670112240083060994645162602529696929645221620520313288618395395707604730087746397498105215156242649800695751664190191102603427026986138388154911766377411191273473417102542712607340150933113508079089283204512032403330192589013086450711622904508774598161969776687636924424718463449402800320347595253571273282148365803760719066422240044937336690422882225154382466557771271665427205617024485645581475343039719301907059730719447903881580435036599129807950647650530976000670618673047895849007828686267346454988273273174561881325491037545937063248660610813738685160159629873591836342785932997248049940292855246166250147455910036833904493153032793048457308216310426807675935086861136891810274147317062252867619886981391859590196541470960280066181168221844573179356502283553946805855062360280363875135177081583772000105231713721413206416206264542951915986938130698215200236215261321735034067537891592319476608249756429838810080496694629511062999860938187100679505316909160985555340928547162368263732855420372738559379669530902085318857872337486632821291759914813501992182917618671676498186497568174798911137775943923513717905321081777463856624535863728484268137531808922818254963346354486662433584324001622708265711857477362026426931608659405176940821994551488295907697038903714708933099404020209544179205598600115915187472676506715903211266102790951771308718799270542316139422830876741578507727831940461026312869314658854073913621377800467890079213494880050739208853463405265858754850009993818836827401227394124922678915004510908429509702816085404802342846968769565366753138217274453079904133013855560892980936425863990359968550056310546391579629700377273126039160545051696114770261325817506605320148968664804417313149849561718550703237090268989021483696051898495048721420631725413939935372011732410437028345508392691834775895008359227248800114075950829090288514250414596343786598365818812946637711033930515753646832124262898996199627455376746262763856446572820308906504505887445939993429161483576362433259790877567988562315931675533391629385545116881023715865617108165395368346892470614259991541115909482855866952781271697433965751709322978813984444313574541179191285048061836259897420810653583600026598815172006312612169850037271801861529483211785813752828374982414885517127488242442819895366647896209257801290535030753518307350564638616010423797159179160141781097399570339405801010997738737131034898480645816730158912598085542654568776558278323988941840944854121969070408660765211430476564907460739334432352039113747162586849996314611521728534919627491952383827911643573363351786586148310577793537073925680659127301617039903342088514678146594279288170460553785968552034765463968014517247818679641435867366656200161787885266129779470491237447153309738343665262972183410061269363881158212320914322771684515138683092479332553979601182513451601317353147771198238558886566136902425666532325328382249808240507614570570455938560784899914926894751216968603659682333900185593114416762893761855713401115142944209075895095310474002266191964777516150279662113174161174534602749827204890698689201808783245503296902877672092997402495055766150673647558662254980738402340793159480211091682930462863237393505152629152513424682734995221935714570971804554328911170271919858231914359912981378132536960857358010930610318365422350367651483191581643087193688039653428710277359128348135125027491362169628670584323903804786696716517938123381447732592817799136311714026632259841181581249727904625908091209053631956985479114957606667611170710779247726598991102029826080046703590029653261851751699664335868143330751494472911491019707730127459281433061957056278979580272145650820019672959528052844984750977266614746497924144373435208775425113329941592254890594448394859870397647827619756552711344526055613042978236078808205690786368047923301111499576661013591001361164697104741693120242923788766108342681738792469426965563586943858363893461941422177765583176754118882593279687831288754620425177977272271802821378528368601509030806973141136526325146296527636826630125996409961954702566816807704371152603314883164683128661437529291698749004306827148398894285949921107194864420752679061816572721579861234195089261676644962063859749150979851004534342013812428001002957369492828300683879973274611607029367885703442119067119599412815550546491950317147206119634815667894237825036628301366995402216998066792492249277371946406197376187633171740209733193490935952738819218309529358427974476119828623465864370216363470581799092907093341282939387717380145155137011138230027428759674038284439353130923427750753819957299546857643629096866876452171318682154673434884248010768650729372055289789606571512287164232829743122139940560615220628414539308345665103173962007075645991250977544878821546696805361760265145991058206571647303012631749015551785532950502197739176658391701518886784962148403413463449486494356501170276918883482286525470631671399592625208540737328556517908929544587080972892149523931731083414304463214216941245907151305799767723665165126025654309474395682371809383504901717258911521563618958730107243686843422843847110441778014123174263822475245956787812552946110403220945151268786343060620611134364093741765237551640553680720204701143325951119849301584125953205776308137307620433081059376272811620036134010451691201057633990074129677014686568510704639847288146364657189743319204145409611466072324213306100203456165047667949197872972870072705697552051463058303155484822839488558955163871791026681531822060387408977530398853307798147829006175083144794254124922252667481615001529020694862579980320629872478616326639669279129995657289354912257500346088316308740825057907655068455325270890905118388674640937289749126315893688710199919840332275120430945226334575753956016279665455230737376775865148937282759358632070538170076741343904453801259569384890316376079743890569123987112157475777952744231533608635078119148807698213945650792942293947905378085518301081221353580822294028117999903808739418470516647028197141395212525040973687458785621522123387438017062014133323682600071382295878769652835663943553059149396924037504597026339203845447110035437018796257279671427834225807154375370507473767663957781521991545522518240360715025734824570628898779617634748247878505583784396301500293244525489078229379417777498929979507337234528010788731527408882712521936900651449749049478370207446579016173856574524065363262361304059371002548248838176534632375573195970385866175862377822338766525124805012361198167092391678591513132967183112466041055520293559333165304047333019681708949334687319381153294248168583522616414299996712366226736622976102295513695617822953173173481131224240484827518959812515281190594366581309764950074910809404274080062200318330113876824542454574423214049710835353232174854190423134647464989814075801134744251671299002240771761900507205530520701326832995375667464297334177495212572841651053087491485747193109656208166105037204575495655475303607237825752555376843048789205192271895639197621034180839608933165209128138532629015825901127312342319469126896089007725282800935097261256744539462632558330309712944524514908367196919020972465326399543424660057064233711354587532115606829456037816260738639821579285468336541499385557972101411808265082523983537416844953250518041141445953662495093457317723811458916098619268507950499785898817652488643809842776358653611498279987609697375630966535151949720217987660151888484570032389187815102242536459576344820578846100290129323776282749599467731942081185740138553074215558487831434452796565184444691247995426523487197493753920278560282222605547591862389086377944169425773749058772492242718975134667793743745438334056978322163757820415462402170547652466154527301771939847921077678677031780326663569081523419618925823773523430219591813990396128740390094638225292509722468399033657623020287524421976569240218154858543216761018218773298452321592970329353940078705216296438982384064252768745953008593274939346380079577510255933669123891366699099951971966221040740055851940822653273908994112467269611926604023000705507890043137662489007050504157407588026088044904646977669922631448862929849269337388748683505111189882190790338108525648341795500025586043306391504758028507014784200705406177853613461732835491983592417737410492662412405813142671011372743860040214073613874218721077490284065444173195106411573329275862584703382706445803809122512408006956159771455873253432823133423925260446616794374121243734756002930297793387830776010043466351671536691406652322533372524446815840017812586614365271501062652585112228247095288491203195179257483630833782524712436387226668013110003295795202288003512796413282174638236068498942645379900220681759774696912793418892077456655206411145445903689368987473981548536781675100905472106025699076511491521381751226901649918613492119693822689910350534965279539391445281504874449766467510946975943495646330452881709567847587583268438517613201122092289334185962982916132834405555211399054243109602892860807698884514472471890045520011061456539230552096380012973278797192198415463117378664668732752123369460457655832012366413471977914956406316013103109080222280535831892108575455351606279164103282667665235614088035650660113281051196459380868741000420305272606805329289516342589663276688723906469227438944482265156218158996858478627821855624238227833896559897618533523184348634925311715795080426563827146207816259900343328998738643104314029650057956099350327540446951152884900509936377933237206625473874989965388693621102079342940016194677203697370029769830228170334096230921218624971997323960276318210985101029566384731829997103777498439897918474807722388603805087262655849705310821549932465286781670603859616893078446212672586112250920654406218048656386690254516002084300951285131081022499280130572776550036973521815512975110889463683608149721559475627382163364804231416155951519915918390014474754553054823718560116431494742423573549516301115707787857153351570746904985563128141010694589805146443797773865838907461665976620910686478303683594331132319308117294928548498015033434071450601134394188368895531211662778955465638286441148669074834021862904712966257586733261044901967919010532045956726380595663239441144229724144735030399426416647965518135148217543193719346567310312068021223002913477572613010943429353434260766862341441030774956501947921331975563183098032638189226425197185487931176050976295317286951068560037974662396841700521258036422143117650768227761952877624084762740705305732876117897915419351882249339656186802616040467553208569034606468488263768543396606877574855018902164552785744841832225328569326695257394205099954471013966799508319825539599382790937410524370192332148591203178239595765532393895213163038156215933486063492170502894531857892871346710571572302690702615211382006211297716881777099930403125541356010027168578399396297512795996218116482305910933330478029285123185387199644148692758418715229765454098335381469669618719967975481345048372462102239232615961827873368454537583286234942467049014485275740212433125441189562599940548117730226492570202699917457226287824993296289605044150164149554622642300670782359602748929712037234427002508416404703004520872249700755356533134210630829654661311063527766471599669764405567293694057489879285570317462925065815019499478978715916617760544657923694803593759698703441760545164608887967045138460158519635999548017852290992486712968380317419005584573969787579308879837249549330834803971236855673428714116577949671831152072716273875906122879411590145576472104960636156287955953684660830018321771660864940603200847505568492032698427028041581328124623329200093047395691816996778097721146094567973036292507160576076122686776527858872580658868458870261123001888789573828264141018176488788266607483497284846707040603465225846688500144518011599681771524608105086774746399060553579964982436511765369252506356986086662413964338018951052182646208975614541141647896125418156049125750840659985708445416417897649615117417240000085342721881137061807557056707844895590977353131740418356608424245012256685388170549016745721517739133266409814090724082326922707363559503845088665227702604873298311213581325821703191827909769302106844925964228252264902348028617966267399913059017873943918435838569064506211667060757537036235943128134381478738525291460079295803314882641039918777759546439194277456925997402162806442734407821613537737074878054930881073371067915923860632442423026917796016761133054397105928291636690056778583363832850023807908341944021043508761383368110381470661002394996736714241434728170648368847637720153883170559306273899533515117920165410597134369759310800764589120829085021237263525948572320761071290818423525635231036925089482998143472213540035760793303954581968273884309928894254793078234077130422696554103269277294907056760109613486706060410871310395767396488008852448495319457526977910257570006182754773649011974298294971596096321406972890713509401419657904794543845258039542936569113050098999225817649716392044677548609985364757178341231906755277032538348732408372814228114882967527802571357074606527989133742891722905969927455642141371162615206589351490687410433128856849687337266633994987780361197074428011248187906692650592171697947711330464524446862803820481027542502039443385495296111136014177779037271835426063286793551419988235773845540424588722410932132983952993082175121166528403507119333137211990871009803262615809814901963650059253907176483870726499178681212649016902288839467615767843361322484799898990740781167322414926793727790013622365896510886340492146076399406195512696090970022827763628329428969862662090726693266560607646538821946224891851996272587006362162875151778846986228375062864757709242886410232605175912642463137500567807617559710321636425864844875427788972137052426841586206474905108443275613209719776207617601980197732272464167191008399804226809832904475954205508552588578747587404185329693738503006296066733916391261810003795860440418747342061083562182083554195009098586652758064081521376967927702332680935116371906581276085419904244556515481981643408689303458181063915941202789546620291547341926946735518166678465993633535249274825036813312733322906213455613763671825563447514226135232930022974156839824847691900574103046406970889013487237440885953855024951018999519832108862452194368849628847575604077116680731939865159789432707473820646302242803875648736965961638246225512545360461996566634186960543334422789511722292184026614086466376805016900416573597266003496678863576063921211897421648853215757870994614857645908460482711321038645001180923422243875913015726563910660644970245879350340007510032826778159438484902298138580477781923719291257860319902933056167292171528634086761454360133853498226704234563156603985295163180402705155404487871008066479852647045109903988968107424200337414222854111976484090502760891864435454602492325452677469442817342339620941879895993286447366708175098608441195441291606290945996217639973949001343309745391501189736088378997128623712303870146323710977741556197397703659987493699904945048198694872254571846952399268585342516067405344667885315457679254948612266177388580074702400627031832270932062509534054834437056632983239987566390886412756693898220522259749844562252487334596998637953375819712842881627651763109323971337564171864332178175795274349522407201987152484769685838609147420709225392587915057081454899575835273381945377021561445719980090980486713983703660929384809042950433223265171916363826293498714792603871663353532065288633890546270526909076740202780001136617615995631681077298732267967867869623089772350006090927112472986583544765619358644062730888952456788853021947632654283454034613346565789979145415643210154722894654937550278516437674637161164633079867103928955023497206871552124155761177171195492623513544816622848192377347518890917379820541154391801797889920320008116658835340491956480194340098396479579617499210501242863723886549570502138753563633547760193367324270908387933489572190091359936754542912083741334720829910280390974168554409753465348522485310379752086459867413589361124706942052665337126043820809065719423109706188105641024066347554390850216558828507743704327972101399977905117520781245435622244718605333114185368600570652835791924748706323836023573202710878590551525820253500637909350324388405200054719692520123271443266364853564404930855075332155782830935910485799402375369917839478956220824981566206224447799261916574531676907930383558745324961959118523192798570133468841005818850414357646473180777881167777915674092454694619137529924197496903626164240510388994352092130423790304679842545643873504581447710478075620442518280553690821162976536669880382635570228328443890534575234051223657882367071873068641927700114193400714844655168994831458483925445940342264815781817782772261564852013707533000531636437699794294453982767186962222218875530067945932967900502688300712389641537358367596808792020319415542807934284430868436925319753840958453969686236232488805215215048710338279182421751599474100662234944578003350375147191745912526250248398748200581936783112157484497357057839865936775070099113359291914271047156748237627509747196932065931323282933101080800068555223249068211347455929623806442519140231298889051680460612046819282168622833009619144197233089183897018317534075010579494325770354100440806091737499721475267044260225409573195148417231270063727271251709142033783117717039390258783969074087736603065622526536908745927105950523527278218229557589947538766437324727051222624227156236262681582539417136452155154257532918282371580237914658636836872214060459285464605559762432005557143415223872924696822890999449256151132832852889584677126691913020405646691496421001769658891362446156665255144588098140625058767023242105289022103228434283326749136574376100605802162116267649161353327988139524534255626006049671701854134632620234770831532485294900246704475186787904762793218128036943783338484596056571955553308818791848699679799533001441507212561568500296207759490888343431302337006896616882523068027190810695690237135613246601306526379086771024951256813033892638699738842980765601182892584678093883925215614778072552124718018055204869628571371098749828892187103412987453031551001185539743776609507128098092238452291990482286993274909053646762878983492314889617557061099565234938079605112292068177032409684012754472772609488447228799959191350179359459503441093822499553835308409364365851062331125103290525268312151919729599485141602083471724308077557102039248808864361231292158100579811156516404782515298107247783566452491235436267945224697828656546408218232556859015426983764999347222937092594928935347584437918574952126367351757892206797018947430720952498326152700020625438072540442650605542676703953591838899595997035265182253799553067856917183935868014451656518582025814313273525319090503265823708814857328051223506561399264829882274705419098134032218640346134131899725771334822447254412225586232631144076933394927800121526532243503039963914562418550393965575442327104972171649121765587398737134258035442781408378119943599790458813852509254389070146106453035953919264572969435871668277410615909907655558559785664965185157417206356966652082247485611691101414759461722466703212204964692587264354360257484400067347626611630845793890910287735203900363438229393915149603517537056174054849032417269185849737231954352456069091470386700701150609248694121177858173875030353362269102355115571076011372705187178894757589429633661475385137428189096026287732819602066987060224856659098563417517141615744362766572323936436528930351489089227232528685132494711374062518086980104871538155367902359167972701633038808375540160362621883277438186274493520605453062721079712225504513698150807973284854293245007532117605053227709609583937088309308623095480264946506879339945700869919114975946157315026634647436870587271553593456777064980873982103445606888399338063942193013996200004920694591332797519519696935285848503166623344423546763709480967577387722498061143518492264862091916962566899759187767709598162933236879957791086877993784870373162586909279999507127574342115606335138970460074541098225658125410824115496397475622889727774766422494155969369206454170655189843162695587385040511386162293223941693482225167651285296726190284914414143873341287565894592596658857959979709780213692499173156878944245567719336119524346980469444668018562533646794153042373194178175131728520826427595854769198117407919807354461608040435738064924254001104570271382754719114137380201302767545801744106945931978249245833131259050741266733242313398079375822496588876401528367709679106402434317981479824977276204369425676006082884996466476531185729005088345414215390551529949815083221142652625710145428574458046792637946609170364409295982166661556851038080739273949273375043024484524766973387955776570737130425943031780283497376928280338721762810471931019399753410068476231058951340859368224454877023559150302868798899546602657941900526353792152857416301449801706140509528194313073069812172421905060562092717474747845114389644932223403516475922257656823439766567394677551905443570404255953503086358569775798648750044917371915387044068895945201866682097981717177743242637001196567093380643229633760945203235288598813149584894700585023476785829778223606329730020975650443344841334650349271483023608071782819612809756256444601338079460630810203562173954338995783582225522532356903137184609734046354517197269611702549900940057041574373159639297112848026482644244760279671711368364020905737919285121962026462614810203068928092116592011994195246198369177362364767846514971634217394343113965130959259846736027655879207580227948500903095547010874640023728254826444776026119290431582466563839608386466574165232251741715677156879391605439237098352400141667028319366447558657746658649855712592262909410491474724053105292316981464199184050643482653100871443365127862497113501611717704457311035794160589232886504701351572234095697397284816829142398983142598197509805871994375440198116863787505121739967797455423512201997902012879939631776304319075023752648805706075095022613439728060831686459545055012400211099150330917107224288675177979629838079715548406632895564572372344833004154506366417064336574658804334963519456208370987645775817906863607356148428347879771419658860609808007354768829874150645760340086768882804809494667697829877040514369774179237047415946576391736606132963460624625999329665114497717990637641876588110129713354834071556015263667373150869688957711482780862431770761871636025242670436728864234224698877032230497171227926337491989913618695157197604817560880666100836419088695924104734353007082602192150234293059145539779403091265890882007849052901084575032927253894588472291346510882552862845008955007168420303909733496982947916304472725421478076356835562636204721625170798964419999045373517867405084538274463680405323356816346174130903678534057965719637518831783802124445949675812859142524609550200607113315971575274827322471544662482760673032937562248625635535558366155474399444242663365262168456615619770254797361914723290584196175245776041836755125618178269100607759657802111723080403020928976883157779181456645778920521785253863983608385344842142149651956316074889833446990945908811802957304951629820326004608084268994045804756807379194940612387351707488643822589762773197959132240593394853178301517068548151067659871898328771623785859893196427244266403919233174739000696232492792651905630532661224184965535986916575840929266478779370653350919355309376494973796416416429450691384207940439526471524057108402861260041154215656044778632946290660439606413145165889715751879091565097255584341539887726106511665871529299224122381950680800200337352747619916602170941016714577283450728597035771138467928359361397029688998120211446006681046279548740624313420446987198447894032709357177120227359864635282316810459196998201893816582901919171882639300779230361101175951765029270494382828661068319249677671385585122048911315566179335393646132089857763039839673689081545636707845041577580072279800659329318366757264223755206058901911606602111633390443901635739105209934998901224899498052726452024964895870077419736958486566405851784436378332801123731118139072063456332004526968337699904790885719406516382986891277553232537309728231004761484531578179394394001554698639239227510826421301149085566802827257505705780346343294822828780805752002916081643941329042385195481550044679201087267919077527801704746927211868390548585399367276463036316132513182287586005557683086729038715524936393541827578462668087109693405517233334759863104752311180285714296175747482554174299221482251227942570064868504186845468200466819172370183247879252055221176381464802846462629207488982675039429739624148852130685304537155751737187082277953668844679945748165462175161020963989695271118239077581226434407351054839840064724610890552617958160928850699622675328840837716186979104253908031590018728730413093704779603826937554570122329544289999187781369267328174160589979562456133788809673856124022914374211793658058037404630152672634663064917208987235290795777753155579245070100120368885986431571319680533510799866956967191883319505230971220643817155035990397093342863292450259772705431503864374538432926218720135511118219608682733236435104622083728420982858578937310202473373719643115236169525189588267190102124516985568468199419448188992742018549994756912699993166102218465846579782926358650330991260273516767240789618982708357267168022292990846828889664604531901520937208354291764796423036168108691928815940847256525421784141021504200861098667357076815576818233004542065513250388647583618802557307547601619530164639652195571844440953083253858418405429440955082856131742416581878423965508810217601466426964071106268784836209443642772656195227629331165248650800134200868648146679240246361840075107690323705190155560183212184421419357288175990420061302332900609819913232017566958721599552938911854109617945295309997888140980583815629378198174584075598595156503235629870887678336585350165401014921992519949142124776039555036270140027808247307781092198065010665908387827221427374154123033603059624357052069726319834239275481295199623446837985104908806176865668972319527076055690332316074205793293021570013566932366942091559235924157219826047732108457111432108785243164129162212294905962214647011787257303923166235251506462673363441744773959099820311344674641195891775648930044034039264960984842640774482332632414505962187228262287045601444342901614096206745947404156652700010241841517772476878632554843860768936741120703559074970398686125820494498025167480414987932171070518089184137063263486694898820930690801243142082797463616257321790680613758468086101637226392806629628733515825234479435439814285624930390993068723457467528520388042959494819819938641750670450325744709004445138422781029278467191036200826718974190335889043997467804254617711963742507206356245653177203486098980184060377185685990880801357807563388288305078037538903535928445248996255250446969948202402891480273957922344805467081459772492792968538286991889138780931777224299714589882879394787946179772933045916639813149804467352752796196499375657899970997008593928446266225746973807852842446373551004770660496944499978976223973647396183427507330178532593963650685365221787324107485325597181213341303053977504943739080078449244879100099202592183080518003606726968412985212859599527651973057885163760409539710876142400061006843300937268116606855063707678661287139313959020567480411291902981450118832339270043362105338552166552091285107040141841205172173462320367686789728460969647568569894127256690717751734859168289023816034696882326512079385614780265635130704218419313340585875900788294222648519515881762624099175322919165761207348399559239062836600042076624744849954386062474467944495385113151842704075358434521272331591488135966584729297897680935535441525649718543116743430580740477548256677512976023224468996151657927029134971758864990494394949055332399178944695584575721611898264309780152126169059950798775571534971736906347903765820298209340489264971963026151943437220065871987058941785434044204448158344320891811756006493848681454630166446367853567402861464380406703030887959194111679086615124978211281275454358931849947051675342490341035947012466560018871109175167198385170390184912173039480963068775685413048078809631908089162689525394830336356855466606574253385499600704964147073452677753388947690089971520077096826487693420342139100042666287606650150590026627531384011156896397624377298406886281426347075866699489139117937406056731294263449133533916965855385276154148814251545699785460287400347692381547703252496867059236312079078814347440578830648903537446255187210146054829839754791097487810216535509705150384148016176083620469645369710275246966358478555110832249203706266497295709511893040436453557837872909472894968602867044026489137385090882547052115685163609741294288463820871771928448521647310046132842706466782690948957158732247156937011276920546547891602797072764215042254864494046137382328429813545291715767121953045233708161801097134535521733975779425152917282410635180978307845484788213124178912349907054073356164635287944838347215230749950048723568146903597765776036519250617842153909421566284964116658216776248225928167135268685545922057102539991458911565787208367016252658883113966255145631564311657948832311271118021913558396895378833588670596183530633195567303183805056650998223264673325179565133781759670431262841008002125777713279918032097691905288990130200419354900400508153384652863812491445618533958776397636311688759444613282034532438017990214336716903730626514665689770422780211403962125195636658896997070827610479998993216306376020718038687007893960952818875798440158319849596709512029361076567920342174163226456603838772009032084700175174657457074778385892897533373544663403772549867163518625622911367514666722257895882971366100043760618878894335266043265960856560512434228033803221142353506786473195813741863795140832957711779601582714463166032819801786341696591837022843834557084945112062183103180057718589117908563004977968166709684657893613776879169013500219993196334417199551926812442246519214947976445560042440981273349264637264466633557308637215398377612514938220237542869880301823242012145301080214904534563637033114280765009296228798230910042502199522920897565192598610785603541100598804978249890158428974198818072688989925077408671917717268109225180469944880541698059327448673414845120421331337616257416522362690686024996623965748499882184818981888919054934512894098491536097561683592320240520699815308092237528390185376241618128599680081228973553810343040020903871278315937255830815582379154025932330973220232738937619460167553448689390151576185604446299701826508345218240577079214737678058164959659792754659058507882199629985771507474463599679670641087468250529146912597964722103822755836135617576487292952536877586561549870602045769996618564935663068655794314166287410795168051872411322953847705227192181255289369751623397668686899996571745524149603237865133415912670108058476626200541349505112681983274863678319734006089688487158665794088145580790260382512420614390287387293340544326116888410574577043731547981847716240719235259237490057825224956590867025981389777806088138388199471504959913287112900517961345845579894792176655667764987693583400259532133593068312041967305502566230804136322517113734591313973283587993734903187222274151190414947938173853152521624832393915131050570382488122354566429315329771092512473872386413079498165306339145186829352814485211560402797240502826881768603437732244859450745506397115498353246197313934794897439796273268770365486613653059826842214098237054514663284972190984657266283362321663657486879776887353195917678505274467179437779167010004594685907613350604400310245365857906380739822213118575511573864051585397299549721016228648144041370156178045447967676629534647124521592309026411008947743157544071953622902645017739429412828770233283796340109875124189449432858462890149707752343919037567475130792001523225205235605028477428984168132199789940143060840595525804232159499405417755778078709454122366115532665288594562135196613557141235566357747327609539704322863244925985588470609200370747376562832941770341099583356860288338227725576652002311244542189009551332746512742746062227532306060922029682551532561330134287731276213658196273082828649763381294268133428368669988541681693625431197505689188207631855620960864881803695549421740764970062914296746660591624651317692707732789431866897981786674260671766935707551663794296645398592094051254282203072862698681348989042849460959870139016390920271393676510294136748082114012407883608366663921260392667182057442878611388504948913740691556693442238913428999503046261361210018947811862172546155156529500636256465411470252067338634765665756279466891063423949159866885107640607718342566603059775269667785989315348433556594503663861623174076608723430725322061379078000764642167457176150900853958024566849213831926788384792351770203835145128924250255121879393341200839440785083138088264846775847375056649771560845168426870240451192319035751967226838620020681841733246193298659687294235890323216448169875704262362923599330318580874995255788146589661434943113483692004966033621933756869611883961666411832403239109173165781713404635289986350179279355970728161702103043218461492512010050594453287962546956213850183440800968414838773397213448738171639587079113890851186600206152812975045236543351005772042009337917259607595286022426314541581963873936979844080976472255813017260894977291013745478059533842748542061245226371315285812603217263430834613653218695053076813204682193442109638850283813157055789597164473171285439801731858997762213754102497173143189741652487484568110458029817254570996395031975149208653983669082724118006806944108279887067816812535532345998389193889675367511560014502183692889918837586093389709965300032236243338782252216424270218955546313403992838377931810729464670912704417621711944637791809567303206510968959649269266197376962229557793131516935923303203140939486316335294547553704416338226068193257411257916941365518656839388322652030868449447530734595070274472479030526788597144813213294294933952736199663665070630587182292584530628553262962520050041415964055445633778193259950456309202748251124465962981496174591495415203716269526691567045316305622965237329031203921418119230510119925149202491961852041712922514714747484076178852823834985345135292493612971517172540702035287567740804048894908245768674182576568510449933832568490133754224205794122762623959189982516791913166362291709857499857757520969451521961057504306335127755187912762878064699892855975834568080256110874806674262863207423121766431972609934700580223028101657795269574247318037624057697201960518609655348522342345234781572174118302708888304472802206040001899062316775887356954785459531590089083896481551050377446195402725153882119858410591800357681904281789367476870936193536938034638844111686690383316976279507603478475951450751068854890341835080700829290908090136107620610241110272560563783958480612420207638274278328128161176399974024763516600890283172992897719133743207755174118591978228132332656308096695299924395721606849957258026704737650769377787325742832126260119240868947647723501745960752992266024407150124885534310356024052997046977909124505890826241356147823653474278260314340490245387677832229508663299188708151614053784949987934611072673737769182791875217126085320442166522338735270661588568305281922250711359119830310590980726309136379509882865017876102347867528569198036035064583379699459194461690336926327584320163545593566983022780385265907525963341874071265011431499249192501760642186388341923218153648243628916016110095767703526181727946619669252338418065762706816054720635604805326938327322941790961215914188227062404503840791973447079929295530076699912221147730486499264166183502822048612898559950189595311786521413748169032536300918101860190616021790298434500519276467250792444662461361154073589336918545610967835785755270882923215467637396406953194339104524845288802223569507875108279405657273635309517879302682250614257432892944737029618262567037036628126717280746653055420452334949090758254117916688327688275577754734370146563554879057702685022641125875394097103172035140008595686957950464244698012204990118476033555039458525479357337061486383607257962422802320893469790587458426351811003910905082708498107196825244811110647130732324726047112691837319733744470592607329574252648778896953370755056029644917727253289866475979639104548458551509412625284414759765362298410394412016776235860162775425207620700094766119737214103139166225734616954633109738911667569154772616353480068477863149970941462813127563579227449744241878125118239252516718745968260693397541636620164726151565671117516450288259475573722347282688628099821569344757060139829948256979878713172358129645446623594934164136296344529964981662822314898101816457281923070728824012782431242417396001059884457190603329986667691612075769323018147391725299709859988043195103786817691261427344763645843377339800677396001620217792672157085951884412992150962164328578359665586056998657486369483599695091646426577497278494358300513230102763192114922845524614576506040736225647849209799073424871144411445572277407038486647593176490971790261772966907452008020925134463971663317896386839678023464290610441582502339373838224312092661572604407142210984848909885177149144694696073641607651401381780001869493633193661079959518520878145200685261259706465219527485650017639393692265813528129707064064086313712736674634542976187500362180879405958600163021280388632548303336759234153257792451509105078371260517169581761600991060225108757628467702005152905747537488219911841796454160251475566313898220570522855878261773987830427848198145473542155127960028122198779002553877130537290911334925120556582633329329746056185099204884934961748889950826548532829727942218314560981856772984832216996537326349950419397555652932890694674261286580257861292489582129142483793593336765855322585706897876497450971758826106588564305229028796827309122610900839723643435188725508129981418256713518137478621226585954775588934000018695943368018539548846524474579100892783135946929473135830284468238314768885410270753880083853264865858140873065658017441965401553638133879103038095163099834838449399188271521338456890324157016968426096883234890391615510253129866272295815874319741412725009252620129572135723091186107245494911825484926172575597149581716665990554779126473788700646953786052234203521594149346630026316973653008438723743831829392787661070769407332509148180189114066111159074300664711299579267979126309552818450713174238490215785533884073613986654178812359735397744562629082609786119707695789966271229336792348013187875141455153006141111734686308783641168516404647529924198748848096324274896950248464625438168772383173449752208595134736020536679291209645966804776071512564043978751680846598641694756171617493235387435239803285928415824442093808757171598908083888353665538349986978632086288987622424360912761872525072527551772350581170412945747634756677751671792105393074755865963223230457615783922302807651503343943599553333514220907622556486183068460816961794913675128253673344604057302725549428273855589546480804748454206330986311020720352979021353553533521195734051653560433323138677026038813024286695229108436665230469472706794263905317166062441217392376257688278075568000854015688108224083180383272374161231589414248985988793184223827544004311986471641424438556381927710140239987322320852216166556528841814191646400374672655154537608638699582575262605341601008650109746652220192945199035986676246678183358656989872804805336175099192127354672866287362538991547924125145651927117663067186287081186535374014548031331204185477864319320943100387309979687563540423539698435771444422010624556683331306060778236501520663271332614165091813112522762226704450980420493401013082811420220047261719241609563082586840770872753080979079870773748662360645906252363258020539348430629482002370194876588765090524347236113107012539416469110063542523696305579465335119598568307073445715649166301453004277025104355963359058376255131267316974104416329366819553727566910191187460153583158528372644322096337298217741183990856677029996396485676229954105129647850618897518344978249472083635294563990269429446474528513564767550019569817192517329932079768125683436539853653344644458489750144454776525917273491314434049348907970738827555231472601120746876928081110785004808910141289003301952993360417257926630354784374669164890014380532550290818969685581321698995415947998391278299674905861180935281423911611377316408688617618147161261954884063536797853963470415109696873081541118362923366643683744906478946089940224345706152360418172233045974381989301180581366911975982184342504182464286188649306553545736912226771634827563624950217569605600207132838445234560851897265299912085901843143383570115152295093152729962675324682414940314601319073620652027026991694486104789755685263016275942846585243866659030786763270168672394375597139703434044214396341838432367333504328683193696557605981565309860651379879638092964297819670005471013738226432275887511068759566994874580454149927065173753019468963484966938229941928923694900009532307622340754103035310273001081925016622079166539633451076153870103471541148246119782872404196095265872207334393263243297654490475440604976714601293215388067127128058254000363267111766311063605660663623705985566629175300081177021614975736427112339704349900227076225261299437472982202558648403020070331636568006848493246010952792579822656802661584708175237119774155490833375813857404225532294855617282904670350448702459575083975133010381335082785024376916256616365678850673784615149811124955761217900799695026986176637789608544494217759004816520460374324100983552803066469167954885690412909797827073532990969453150431584204836397778537215761562171558002358335170043980819186370271020328499373718520885123028837153319460244140964726991193893890905950232551493726294250263611524384820318703397329718901291061542909798605496459936563580742178687463951688209666399477486989224386112316707664597044280381512236913370639376239210794644981119794022042137310860679830109812606926055512976900184937985072383082656927431137553835824095492554229255064542143207102342653373207043367161308493526075306613910068461188421569077492879139634618207833631671503367663217877678639568472465133916401884179400695572764436590684020715646217982338108767488063827467123677316888616440798960394320701585466629486448242755619084230570878457245474961249712150358417735210376112346990569061949349874755725908594296532492102813125676854324144289814176305203017646230352963814824306114372806333969025889997922016811311767906102910581609714266685414241462892686544097455515696820658690909176568469459474285898028084389693082459233223234818576841132600762329335708968639777527707077471083209988350008653543286973160463363664419836318499509647986042752444803356659151012703702321382037254733720149865313592631442020696208007065527205680386864051994633781309531105708404229785283377445927956807261866280385201477116428134780547401984319256804798903320408243761436574960540209480798750913923189315771801980654644194226037119755243923042907956829983768240894513093266878882689669767166263479892228679426826899274576262734515352107971980283043907022831497514952076866451181123459953219964014311148223595102643884063353847611001610592977856101569214147666143174871938570247102872056094433818932069739564174554009088196768708919193068178662407854179395359454224231958468685555125447365987759416742210544296534998724967257168486142425176705760741236885757621453908182487408987452556485149761036180831653590623384835020492237627621863260758578298783448006499205094915319611608334717178294970380200936520816175627143915520121210041053441056370254927679346692715151438894170641800133161748324907008803954721972272784286836886785129599714234537394830882101592357463154236725666756515930366838137623198098811159130986165342800658426467273468921171228102599009319674698092564824456447612072325030098727646465069612514690588713659080343767055358926990772376255499056940853275352882079809509325165836767130795290582492330105465286601987279381252812275433521236254277467858785736731595565300136680275887714440671856571681159886702332624923938161219919849392621685993493300887339420143940480236144838085994582303945489850486172611430093968091349106516300627317157870137528043902789300904733281944616562673180630715914959896612077831182382720789725006869196270672942412600198651237820700271311830449407201323581648726612636711604930832536627361360733823819252724146951343393731485359317211338933337243047697484373599342349539121869636993999659838169088466583165712414890000192173097560299223980842948534346100667005899569874367262726327116032408220341512172373167429277447230033110261883965718498317647349045491099036839810342983217083103573339818553639559417707839773495804965914582451554402580369112727705651613156765634995889701213249061651945292078925597450403188718268484772792115588358057056983603989945819745996301744682114314577499333315363153774850769712080094554522255546063363674082429080147646294083274311467255089761536496014679383138770994506142760688593809347458126558167252530566599054686298143597746870901016728620420376221582782080743458795842016405175971376184824032810278168238917891386996753696664218682431509748469125677699721148528624490161667306887038669149403390669465898921976073082073675281620862517177617776176279955680232192453168706036773469064350137595393830788770353842167074740669227633529903676865853449604251054464010725381726873346459085982473926461204413505883572526049220766666862360434001794529211146024816785733539840977101722895166007933034448900415169245492223790550442202218354475258420805953806447688003182946177556260155485738043233222071716141055580170175111752610720313032808574945341787865066866185645022752478891800959916001276714827624225086298300765364927008929829156711684246302882496847878296950679089348920641732406517900930761133030331204609835794221713456628743043694588449582399411890558055506140761747159264021111938447598847185181656857410382534364705969076275823469028599652242031641395690898304932724223079364696275019194165096464384445968970788689081274444615766949155308528211250509109978427914654925084994749472414930076441205500649272768580285932221920285801140755979217463893532451724123396699717522046092218564025598287518976945558524755483647177935787346367069002390525685141420965964291611227853315254069792192853415364499864402989805981270482606078273169592021555557114925796218388871370507235393063401687804719799116302286273633807114479318915685792273738064180807920438913182107213447315711993694659730467276333188860594162414094693961614506643460774551424208124812344653676598233630898569999243565489092363892345860792662749871171367554119971780899699476628813034997281853738366767297993244437686552410325027342219459612356347761563082243468669559661133661692365339072720971200113737891646430746859677818727906670879120467150045059058457828023933123691815327139185707536318142980114282357050072715077092916978915004164217228987799259668100715778305425187699465334879803574170038167682483946316667715527289302228045990764028012223613171669006149327565822223481254128013344990442468685270844453622656159102993611705287684637446327603728488471188778790053705506400336804453479585627974982634093375135822625435224939485806222458800748148411582982956070699828087387482420003663957913259349691043566747806907104353428067245070835629742786236306009347604331716862966993877015855952444982897307254068427897812881497203950396970574994098721047640143316906664186142662969635650921626606114127199733221710167291184118946501806789705364716274538621420040986299288492708455837022952624527260014599657336339156851658770997971600123642429298310495168473371096644702315374131549579071929405107428868667878566757816588266203752067025207381291081755296718547601142384233756577282653713937429229656606982758870509016383629734231545365275174326735878836431143826985713630252890662199326210862729605882604398403583417376841494094923475897912665280284785844697591443358229788387123387076550423299920068149438065540550373349881446546662781467480817845135502951237754863906095957460275828734545580416429007335916479894971313339079911426275882056449192173861318360164316862169493845680977637817635586624873737305201773424844368965971043510147535237719321947725793662303413969693373591251219649627606599451420205550973204738586910140875808357568977521516220710943160897365498050167273579666946131051700358621986087586307788554867042291423292893970399424621768010501364852705762986792599830052134730586120196848130022815731511215271260864120887459020553367533176033353422724908966991793925684490062017472332442108822670320302353784418932678836467316534285632644231332327144330365441996675965414436684560988702127421355537496577120117842789357256150892009013050163652693825725918827061661106149046258833047149519631775735826741289327999463375719545785813942350958801339595352962505340621809948362372690663860130159638322165991085156454165011190235935765707261763194727833279159063646881165549443723666785889574009926385391659352377170351244236798738373878669935829217900716013357323240944899316670648805626336239029064996579348694555195135999973133216953803230749504050508088198495681985418018312284346636743899982942251149243705532776080608612716731128531663874673907138550482169662631631156157681732336804862160280031891480454910738527630447562446886375465015063875364092778934817306735738026245351082703311566157071219542707380963992416112762463246350793077602330297879006366586057551601709097075856730913312074255117309540052462293613673332859702450686812579564414020653945326923720111560535974400881538634170695995719796897823797705794084024727499174283669396552219464354798407212829360010928897899350035294409908588922895094808798133589613915464898798352994643584799568239932082423948111349157610366067587725594871679092780403701432944026942090962556183190643676736272496686717174075650610618969697507807820098350423494363093172791400904319634397723089634233059161512838759447862117711216681572837287757169372571860485027788402294456052752281609495329250076541272131110227246910877695650351149494145558212490892809794495431317057617722580438617630346729420062134115731746305790457894767580004801655188052791200433131616002019598205788313797595563621463346300496903395831052456751760490842408491947408078323407004196081653519958199104605919462541764388033607286869552234384739206759034522418671933843407418911208918485192707977706782610076198947352329877465607249931936828748071705195270158687359238668634732266357606021917535495214176932741741708949395040365777119294579054946886609988329256304524755749889331425428912421463785928815398091434780524853566865483226907161689277430306967054808294554135927770545246347342420352539638906555405615215202357633739626431614400997500553139719404541866878170611934804324600127838428911486561073047470769075473295258968611969724391217484524856740165914119446232087572232535893725977971418960032909946741523124339958846858623826460508863191812118278938564228365835238140593425630401197088715230176424328871119327264445226810542876234801378197230961205336112848287934444250362282391225044521438791037860271334847618777872393632216907809899237752220837689486251359953998539966409482673749613501604101860062683196624723765421063579370865097002982315016977802723703481099814871898592469110418548431759671744736361967614137578568710644090458757170200326932396817482897530828806939156131351900214856916151879573134690052206207490582303437227483175266478122596689342708170792390432728374004777130332458186660012674766668286737125956386963596219844657386853197680084336391975370005900169411054015469363361234009258737685567582813269709123510199931982731083691729801903652248263261931785047561647971395451491850643074411119649643379499689506828813642200634805638622877971219057413261512036002588612696439762476121366837016627305787897156943079240822190107541459142499879509180928791623557302682733611166249113499367422978984125977871330039257916143133808977086814284157245424526719333909694824162323488724144226722683647461220540148269133376004528367344758206125710665914409074252411953624267653603898685509068433983612553148812675411466108143596525160392865117190818497239149372739940437612378643749077765348427217464974603479760622058100890789918069091904919786502314523517707538676015970441483309914365899652157791013749005897222772395572250681137267596740539736725637888503158277198634688417204749238072578361694704513885623679064254702760113424856070581109368259225740694970718698769461206068314110671935810850733209247050405421865209734569146209253866279321980683802212930318368578500208957135686439326641633054028409562737062018325824051530814735810962541139053211921042768006101242238808827689585125137842287184298761114383465134689693619670690798474625240651006502219731875232035614244485721661336019408372013138210313763907668444258311055596731458142651602317898825936766676557404277432728609233596267715233552687696707405052189894392995992558424559046021196909720092942747019218186468745326915877880592471021656661757411037817111397149482595908955446958890200965116882980584197903220563002569958328927685246345067471158945767911007872904064610346896516979537941424935603944932077618414238531172686787651001928219187013473437531070241656516634033132245012268517448157334913111763852253021235456386018977545047601435373318610168234510112921210551210770993842012224853796965547705146650758129296413423201049544767251553647279707349694236951529531510432774926731476645911954752234690314065274584234164091500290103212107934767776023512079925672036516866041564900437032151398115873357943593349771702352389167660607169818164542168858723683750787350061400593335781554479489014865536541226414115340815787126070918868313018342274794399152474553740681540537120607098366585505570683216196730742245217017610459091827342734749669520278923619872189750172199653614472294852018967039225820538486581382270250095572091384052938636124273174922127727820190930434224051276110970286623753054332024122252028916654819711360936342203953619403065673687698092508812598876579706891290738443826745867767940929572764080347506090301939909534005454579076068869393490612215911360811454474156583508792558404071924512189807877599634421782093982507870957582246243712257828959513661573329902617025601003381173176455692186272205469688370152231180239760733231653283671567972709167370868145456896977132243251910276009695160720135330573773291237833454797009107131279744468903048091763100420643787667779012727218756348155569192227312544813340760541965791192034881101070170004920623542580020860455686178513485351797458423975838419549887660186784757270403570445172216346147878544673625868658834738256719760302233583998985995283281055508979983165038995336886955874557135707166748162613278164876561737971050798996106619391567036322114241106650117659782717594928828887787680333390617786578357357129316243366588413869879144838076135640188740021849555720353832179276749684578338649822316345381472911092167525234822161344947166761970033910114595939396494668695714910313424988802865326001740511729644365659337167051890054828821079054477989247597466466659859470064906885864040981007849988398014028652726907695510364150917113005036643105496027422141330537686075336917090356142275340139855904639636789096122054492637923632158199974694334649124248518375835554081016288326846625323199925983005798170466892316041776837244565937664714973961678401501628060655237393900791002796144267372157405064366684830283141258368918583485038108049366244585636392543073693218090076045732561767314158068625718542385406166231374092050790176606146469396752465110745292477176382440828822989012882843100941845944040045504719914675706323165132100133227890720645854617301174186660568751841676089140920565785319864887115396428949820694667637937108133874823539843928386112677682498709486081258440674031535845785123864292102208129606709808121749967635480807153739344331340985150519220329511278458807518895992232236290070769346708084724918189386381581218374409103891066454013050979487138193672342056928563110205534049556196726630388194812878827591784497757084863372949157483396525468999162091176494818991662107554081908629328143751219123574070429416030681629195106340025551476931296861700921928280816923055048228376244036193459743141036786513800460903900166152862148150784847865075710061264514611288323013006096868271354553607824433391151119568648988734112809847277151056985041404336990131056872127042441105030998551536334255158815218679617423305042109850780345647680512336853544579158801197790168943102133946859373969339355735164898324097714876517015383645924989706551314221190040406105932993163875221262179977100483689718915813062250363751533584967528250678115528940819752724548660876536246801374545891943685469075013253608304619082737410877685975282494495260295323014464625529377744256511598838967130149827474146804209762205317468515807708594942724111673494631628391355849416851846104268533100347210627439611506346806954337649791092851052338378538002738603900772772265218927507475428231398007986264263386888943389889236039486560092090188665216381057762380496246710715866272454767725661673636713052816399726680803274881411792386211345667273260868528249367544585236906972542233615071024355620274395581654095298993622289563732898072672743614984049613673862342280304229303685622727763352039607288447868280884378363239292300419072908865009230379801328616814548821111480735657227715095428468389087821114093145422375483962647680176813023966471809563873839912841423370868120920584292536920986750058257890267014726834290325285251247028527180499002200637417970578740678278173250701546091096422680452137800830610010926614138260001776227009835739641736373104354682433714160132324719443081192691743407691371683626821241565817457584436180755674155264234483741308828495017161788721150810406604401233994781796986659462054176429992249717811167780091610631677715819098399903089251587006704599593204246831327729257942647386356276092220733357973156007675214584361583398436420925568006124260550864463526211606814841853340876438445126369971262284437214587393421370262772495567780592647067356303356082708933416086801165472752352082306941658056530541934322861563985128048437948662128623592631400226586969157593572731100068222221206880365257461927043080719496106658266285590145508669192705211627945265999514767610835909316621816092999366176310272981603969966502575291322245219182578374259423801356482085202008441232386125103889207974141509705544062597908674698817689624715720058986605281691069194411973477976725392850207087082831244058972020351706677680761954096583166326782523125899723202133444499627100619750964682834881772875793662914221756521096798782261672980699348806259066407990919294910999343588048590979396120618068909686425290906408155876236046060908150677351941344204006646837273208444642821118945865434728183168374384639400321452289684747371940110595563409598631863269640932443256657393956927405975785847448199801649666108827047340901953830874974696919896837778885282626134851397450377871099534066145013745003740048604018443526602544012693061026448575618234416175742800036713828769587553702075061965495351039748436265022098198487016154306257503488190116434709937627715327671045205567711309827925761499441349497376317256528635871299808452684149056087524539204788795620640036457440404187137826409092817021687029403951417594659790865670264507385328847206434453137085151840999662319917941541134181049936408433990691567600779046471100665684199298607393057354966063536817079532932024783631819973173398672490964917627262379836584550293569377462105784167636264866266638958110958180865875339485777314760748832451822993191681408728410443510925214928826593007657836246342765696987719568511537674890627947661769010362417513354766600855492634083214075993146509533696746492954842941621706354937880364535065391142582115524052006013183402434379819501041460239649989872490321276911926430933214590877362812838004714130312656113130999765872806032484007610887192348319632553259337449044107744749406710792331683033435714232683240689390194580326962791299297035672158010013836756457555859857204156762099162824902192002927722433381588304685325357080624368375774334746633471400161771014324398047376523602986700638569193761528419635242878930574650672348256411507143821125977115600562934950898494547804134074350480920733670017032832443152742021100087892267044472030615915768391253649187562477897544033072434648065296830376286925955782935288440651217874115284392048274920940354829122866865417005394729196634066669884601308709622842463046811879681674160766913269343788870654738254570617754246727244674093184808185742318207938970141441602248755768739903459146432630698979771813132758720554786190122495041427163633938289289619447243496411510396730831427277412718991781522571231263408701392662697507931061639707615243671333323618524225660226362830072083633103036044482867205555527102649369302214889218810808929795560486316086481313671321948545692112623340197438457472812137234142795314553894086622732225076646765701534089124009250970639893448668284298956594856723147242911331431284333540529002542515991059690428252757655488080171411060491988262312512498112666757329659186160803530691345156387431573944962548325997797424521023348808122110798420164426596588279050168916692960462289046265984888218435900188809016262904392049493039767626767906603327229740562401321512410157735435525863655771333645163629908016055648697324467796153683642374724578782069708686999132224662286033577479113370234646014321586398656111762091214157229531032070175782472836764114501310045849537594624813205217725617438175343150583302362192556070418458421294725429043405888792181098754531956933314597100994420296565819606466837132685781831143785728306139269437864611701892313523691471562071924655205614071905793424104821418359442331480843805972256690237198714458893337047357579996033499020142459622716711954897842968708348116154942672714382747878613341505615864513839851335689370554341148468677389882272849540481085133080699334144844422585765571187534766831822240523163202098002906737762151536956251932933303156412888824713322311477219939743707573012931898710025415075563582378798906834339053047502326202248075046928194739720122726712935661647822318852987401956519481874717181850799634835495526148425876155739067119064247873733533856365087764985829427138537344880642119703802052180504677368244730550120145877092375646487542061198861597868081163827075826452308373871719234827964585558457875307931544539148922855654297483515995961839651234207588002757843659429797469195951112306533505126312666515110189637968531774090458842714623560951263942624432156154357019352348043846132553060791686153044336909777124261747372331729643771370481239451307733056386755843888999757488791646336453968140504626097048394031691035000580246108665954190902776306447578132502224573014851449188600890588743581603990018365078944551425084781825050868269065179133157495735572033197307115711616618033825294734912035271337777287862257548939345910716813489090753971226498502802271251231116553346314242084885049543485544196477763559442071108988265536892185651007737988247418821595932965227716376644761848493184355047097590022103894534748892119855670827814179786826514588267134396045364755319477456311804442694533877571220320235852584549351672463332410912802535246507202413479248196281636352164549053388488014171893598650306877701909677607049427692378089271833239498397327899212616979966485319961753275255532635925548164307927959146588835684704001238459736979433491870351378043284531274965216786976272061097515101603830083185406584228962761845910231305972136253357748516129182569632841312711350657190664641853033802267018468454863155459600630581980711734563602789645657715548424015601220629198560695895962823791616903749120377078796150518253879393440906787769578325892057092615987976422624706978851045924773504480946239307995576107905894566404319907598951896616829445922874977612237667994450021955931247953674283815135166562904200411373475625251820844479494008652905719897204875167383410258740513071551274800943462185735973924201251615733126470898996671510517303749553723122677826003657057094487232065537880630863946486629792100889444544307600744661568119053415111529144304845530523364833396330128623929684322370680076350889186441939027390561417816685266994383820060617173183605348662578003212437951193334019972933251405529215829860955275539139791513469090620112918058416960121147183147732444814918402476865550909287039108511550023644975163956795676440979315715743909196048414543598938132672576784299106984205663753268438755843325775912009111523072001150211252320055050180334637644202263103088012186379996937145093461320669280844287449458163626205881167804971232842176124054702923539197571616603695318234350750156436872216226347581673841343679411787283492775988793370790544740999406720669428011036425713518062925399100870731105586940900190968513978470071753666294269422603416132502500304539116593996246067977029077858651765230467814174448966675590712233267952226690617797492928383496950202423468355716548612920745025627191779550137245697571634735667412773282434262026996640720010251531856292590696801549024276670153775849411761506223184069659471823593197495044300855067872781255047185235222402208618511223468279963453011645879100996154902424913278854599450022640168938645029332053425888618133344939491781429072259812453664875856156550006853767757165078641011219989047070025730323827158941494952980366699303367441938382768821001709615069481090832902585565379625845708436922810825710822794582358880810761472577638256259894622951382379886915202586488495563660095637561235744516919493641925688910402507158844771434408674036542909827164203608507322505948943941670008700863492257282975326036725207998183855958529686852034548820168496594249421180439822720955562325572280372667699133268573528341000291305823571368970343734789521449920486756571435723863234424243733414269972318371789831111537904142279041248663888762813238376505740470408746673203974315015251654891914792774690342130915223548698980300038838696498753639795006639559291860754069817938273667334305457392995333397882626302596412346114240917878549883157667484401432335411132413983590741077885039859640471295164699633140280684713769354119405823104465902844473705575343293670745073345222725933496549897402673316759771100986818262026997145304779396766027031858521699004914922642844426363888332368974225571799275709622146685720431132473156147890276758031452400496149925911234275662128584983776250842940178155932406793993573782026092963627945275141856344353844433546252218517110597856558727859139710812505666116499210148512268854050674463882974919672561194654494550466315668842145951815817716759555845431803614291841906893387167458340445881608725065631982168623806767591968668236288069495786030347501528142834160597149799097197661758507514349975170300337615569650229856629745435685814419837135112367550451627177315734444160062852508045716573007836663653695317922464371175662882451319015936693113361387812157287418563121412266703758432226211599772599296968299299822551449538000176458900663373567972913727105048020286596888015262967895281413772461540026035572199372534472486473914445643915080065865755816378443050758945556494468947448927949602753612639411243888458221177776612159242617381958574055430694060481170353376586824915842538213773038003522434937766049357271871398062914896849424427526892204435146512469401390801111496657335978541967642326774852523743709364450212898831124990658316704907059891219252320666734299452743011742420445322230424437127772040513215062036442352669514056805429155413943318838266398366398742807113792742704396864303689144930775537049320562664058586950074962355387516933338257488864126031180375235560423115174855940235870640899796113372244375402648271387225226150656071188951691284762700592371076883482933597975208729814544303846737183449828104565319120377843929843575813755866004731242334668731954076411901885948031634416685175080806460338437572837023835272479732909595574254442577169689828313251526270786534420867104617804401685635371769467424463552558337439843949108768060238929195466200124040650987690633617526091804479197363004064669249388714852010418189100853008149225557400850540943006655112941902691216993454583366918582544223798707926567990388096599875788151931751140162880919647206362859056001097986168249456208586422470266643194974009406938975462607116641065502771925379597750958110052260079234371672959017838731269811479813521510935311398720754599394443428248733547571641453411864245402731040681967643338286605180128039795192244474088908512890711419266884740682787962115674684054647433465745420931634959694410927359195761944068890689343998198662975589283352563153838820600803959494101103563628478057227180416077312616447270245639044074856902342212944774940231828780829914710730004848312674597779997295453990953468164477567357283098545696759890002888806053269228165492645625076557643727165472729573363885873682086295027856741428207162022798362282204466522129019321893688281920417449624742365876668153447290208906589415601502897693757208186598521091054099036133441363450401777411888328461970953308731358268589023677277785116697280032118927749503001776812152190138578711790311102527605182589814070605189098324749001958246344345265730583268363478678934648732278906600288360621942603064360614548485544665838040664884844356677955337310280083452340953723025290332523179242734430285607094450670587293920568076163432847673881280731073660207688215812745207657181040038205509696501433679330583576554867903738098995489707165664123936786423454576447013223202990189958946993402938594967820895849530869058774182225922093728834789267579571927284418282295334090856629706293227192494787281565241062590482627417332300077324615169716525933209240053083465547931056522509273444021335172643820300273331976611890712593335638098221813288668947636806498098766811584918095045059801782069723231328656441185555670438475599407856392808384763206068654329124808719069887632357566959902351350899081993958676637749484716401415017463095806834269307526103500038705751635723423273170789751732415103873296846165913083542776180015381734770743002603227540951059832631405974442127197616431644529762897498216616335844326362891263030982725810453241563042491945292862374011358927711156780269711786395634738974290382932439471277946151468128267976223062758432876059828427437217846692489401504056564344479720583635441207401866597149377339120860807620838395469712553219255902085382855533498200944834439391443620848547799574948425237430423754478520810301554162581604978517300091966578547641267418419603652409509406107504632356928594338096618379602354702931122481970716483721270799062192312306267950459923594616292483776654191660453529657480609994829288934911099733221311867976089999643232984739078703289826297803258275452017147253911556820544230203474160824079681603724921016628229653310728567083500385566083255449006248544626668857098889256333080411516220536036516016396001718106469453200388859636471939800412861434709292636638488137484431825069481078435157061416039395640133633194092368990775486911797376532022038399485202436264488097141039197656037804942306896357897695873887988374789816246066156560408634095790639348872034778150603263390935583008922899014464998418757652656145733638669851418913524742495938932244957019379544555508067692426612886494496798396434604940414180342597742016471215093985005691250871125985662884836923216815916076308310969774144557228990101269640054808781906207356635049311109020486317764004552073737726474802031471845945988075833772874288774240537530820393568073605394656669174840317824008686395002422081723431262282513150204824435734174753648059824914307791240452706245118452953467652157627981124176025211426038055145343879120859901071533225222753130656173626120021863767508559193426339462489605277311945169156162986343215521147597628429329334938955886949961979920446360921123077195655748340124972762472236704550878427131463722820695416451050990977679555663840366912144796383753054690535106236958145587306144718189759381646820188490363653641920997312608280714196922946218171980700425394381142280886293277107582107595870026437070691613737732168673855682348686176846281032612090939340883012193337277132140634863414696945962617815866257489362626158777568946839444760119423675022600609286282412136232018104422926375615112766611157057108898157562175660426987294574227349289144439059002529973679581401402850099784000049811544112420242965507133704223078642139722553760469897915080871006434642638005883023950019070942873014453214510863892693793383386046181711784061562213936527973647726909024116857220441976752266623552136774990308891740339610225686202766762849156083597888716133163279114502900979423598298707688054994079650901475035858573790919216746728977510383492066082576361791055851323226882801316236027528867568010696480368549001924028294593028148066978387007347387478492765770117409762842179602992430129419085843552103060000307985382529233470990623848726988663691784610752602882632528875401246270162383077126067099202596540146166465662080736205424140972463426627607269098096761159365212075442387266548352139747054675382634303362336717901118303440612220295206697182036070103406613383033659684556448322557540479201470557573369323836403367838102645911007861923792141499100447834399560668714211082682121115929874859612611113250499590225307147866160414320414446523970569081310057249901071544306717756605234430320939839162102162656699916906365613175894657710764432586168593859313840702555615024583802584548572934559403049731722158381604120393606161547556147790340197080427885201583532918650582247549583900924508377491149657308704475538846299888783042749223330587835269647193874416557998727563463109084249845490971645006311175887352359168513525555866962863425841601970223363223768849806589113604089790946064451188487510974079594009551363221832196663860042793812795876278385343090535765776875614024198075806887932801521477352112726236610303440736521253276810366795850983741709002590656452811989004327816335806505579996320774532581903712025657953964310710644327666395989147533203282929946301235016993602881674483365047161076268902793309234387168699784736675755448660203058470002904157092539270592821645612063554471903713945235465547216227699405265920933226103575756486996275953809272743153662820600892617203777803492975134368149914215334597884115599611048531103291609299454223667335298199528852593974863158602122539421718069606021830384023404650368883585863464374504147296360659654026604015712486429969476926870345831979377959019148625427725200746652218832456651775527362861843901172990948402340263463703741005774220724010142414059898801308001467997473619085226637019861074016473130734833605342074865519322456384566515202102264119067910995828072663147882023478144184665848426944589594867978465648938539731256084572396315941309624525661470610902020188114194354263814803138519957960472147421949836512469392218300793646472280745197182953623792453764350748462854196537728979679965473279649161376790515631020965421488291853222121609067888235666256906673741172431654876457733741799335204615363433962852534780232346706481674072781965928377578470966198631217916385373005794721179312964258910982634587126815445852073667318691356733890296659053801405718662379620973079341748104636177943815090015321448896090873986500277939536102635435532721501697844370643117768758251231331023445343513738294210929693086131560516101641381352073806439272039574410141832133653579209177020248159401461898225467341496946272108087111018963937162070784629640131179604260062500844927268104046511560949525040761965881360340089277703114908784939791729575988421668080455327781833054844048922367098155140340851537872644897735573166219842529655436819233813246973625623853689918246665831605834876092366531711635094309105482524057610129031098991058069180748634954791832920277408354589098017812919642869564129952222291101374487710844627026395561670619509157653126963454582252431471055564878084462145213685289401775248348370799266959501435431273202667282543797567921475275564660910560907312362639969714198873036134837647925419089656423914345065841919460701627188956664208999211301651352793804095159228232035200587962527829768608075616126253913818934644420647564657585194307158820119472990351655233756522558670214223920810271766492945589401458248028292730635776618475260959434406591366529227075762800404528298196556202478844720492288546816538172811847723986902304115513176944567660066916158431077241668369688848367213743158368090579164172606545338063987800961034423533671919870486621018662111480060672952212638657858836103542512906279285053835009786348115726896441070007975629327101474648120934033717039655099044694729678673573930880352111410812544259616096184317519542344543777621103125128193511391152374788113859497434571684327903026926534885400082063890253928908025652385959498501518474962515354478021953728196993910721213047823199971905994706146608052499535932268156919244797520382341397674544465994329512626876979115383451113164205012424816756622805331860219215315290506286707044111776774740659778209501197767748015880251474376496110850290493848805618006098532856609857700228299829140176879619832268982468431918410919568696317338180133085363254215447200904471852069419244859478235103294480682433710665933714276858407130404680710728103489259368865726247539505204383675257825283981132843316195612593512862711144411820394564463382429811889894639866968611240149872594006980158054837756787899896361290097355809184409633374104555767856966869879561463466222523599783996149490821216956162512127003619420230027907355188744297153615639534548733497653477246879891021317291811248420499357924010148827063509232609026450242953226620188199131537655850810716747027203598155965864047959515349936234817454487880097165951462229641959561963298388936146351826571765499852164458763823474072193405694348378654546133275480142032456165256751197740858708714602110273623633385845538816479975955200260492573306404791003765109443827040079427546238656049250296117096094441959001868092791651259243999335235941923531184386421209525087284940263317200134273978194262089106143020904467114723148025536744491799941350372143349729402058242875778714191062645259035001483054042707758508015153994164631702766669757072893119040531272720063368171432568356948434070424472906580069878846635506724571189994968059115549878609862605980283103390929173819557641862219771144443231840530219855941496200272513268083105293321191821512947953113474525488021319480418563510094968031092497997484451798809840503716945729997449272867329248658946653809841457579002313828684748980579998976079900552947774287063302143544438343468136194654201727772850777750985078971587660910561311357167207680913287037707578441828471826970055289670771695212243770865242022430781335568730846260349802619701317755109626297060833344839693233827003304624801002387787824042008039377443761037420802092469195686728556933737370906040003676722865656612811568223945125284975456906495899824619834550663192312735020552302828497294075278446939752616061716714910325299468732141760618333250967597134769123752413332976282588479551173116102641126242292954615031115472171535431770799068183212163187581501877803440601454844997398882191838638607653789775370943100956453593510676826037211342918732198770011649801006663085698128678502338649357249277693270494101048347800696693280280271806884547864912643100737716909137143895579629108510150644093761858433252839846537577321193538036340151647912236420795550501367150270606130284160536446039025229663340530592943953717183667468189153045144119169409652255680863287331804324973583698873731695774470673410911549922575232693993437497592929899679348577545454233696390148445096792384629945836159157152704856158200689545383381888155513812580848034621950373884707331981275469362731375981941999283132391024923142185988616601014709199096063958366755020703978606172976150603059535839614535298103962407836261758302626324996199242218702761067105623633004363892465118579863364526784735343664002716482814404200219848556175039048736232058019432617134505353072104952735740192996068735820650600224997046622240129596229913593045882875985919440051770328039573954950744632929917939805488065682023325014220705706618375325820455106098696025778803732800823777393501723223015627065279497328836365347374947407679450809162947951573767873056239266495787206347666582510629394789587079317748005659913333053336588662801174859757543071190108124672831661006666103170568942101476271684907643989106851478919917157629966913605588778990951571781719781176597452649677783989853085737548653437708579964778539816465328585203476671422357224446292317940990259231604067246778856220679990472210172385457698674562960023621263526778246069138814978685753839404932575005190396917166283422457223379440708187852106156743628242786817664028948686590411281741597550622242076015617196345186115376888757600894031536135967524502301685396042488659853194246792046243670603849550104626057969484792971698174182688335446329048873274345365769055348866199681912988122702069359726172574915734258844943674802509934116603158180919210036581021926057082536328788039208348032621562916686528147969243863578810853136754298024395739823056963605263842203978952415139419948131295302783592520618005325311978015348757259058973067790112129487787272953488189208117856266172157551856888924541439249374032672499010319845523998490694823103654745018245744706758972997192937064070825781904804605629835284223273823055072929662152684183945287401948871406147937871714569647595775317161737573709887104470555599959296932466028023985248099886461600258722068730286680790650134693553412233948732643124914375298688325467472707973858372226926573267947951348808334289775041478096895229793212997922351526687061988931819814801994789274015349532582518264479834848159677413286256244407607055993535693275031096174547304768620286046400738637971482330278732120118106347962149456544042984073081011689011174767133067570542335092949912278838909550996871099125892894443566061626495986906472356006441728709345029091434954014801315977896795160417973150584152368626178731682966009857575197498166353179686739445039965440741980348757622652988616753612354257933106231149786137102142497605751037742404556158375965596433140786983738586652623816734268642854777906024631965996575800886658544193265431103484197971764179693492314733367148591673761253935963778176818010920552087297503187643226996570386557141827715610789022947763218180171241804907055454850553544693551973947097365074094787607331825460744986921807732891234986846707920733131844758494766379199657200593662017208713895637016888776094108753967861829552349482838013585519350793005803501920255599581731777288355102567376786771900785409232059385176099853394018891390403926392115225725803481803241151631194892009247005092540153704786900376366863889668814476404574405574095452700536365204030646598023263936068161629282823074535743090528726142894164854573685301758856371400433445598385509060474409484161009690362154349931281496589534450957060634426598561528769238303540930300618725008431087064436658456474081319729159431781194364712883261788743294257683412447668418389810163366359698247382524304135879588968509105089918163786937990684766589414733614844935405891683111342007903278749356094033271377610077454014581358059303612518022969321849588291803820167759237253976069858279863521100599449777497537739525481940742722420137555887687628678840979069686954123530172273482479822669584538803437784457133970545643187022709797290261950104212391732586885496277686490269146597466421001426146941937490971630629076668200576696559240684632646198406103935257567836080473698046265628121393061285302950684749996523434092939119678489079791948393572192338290046490568120318751091977820030459019666951376706973238836059090301591268380021047876432724052535698392446465894234073575391374606455292246778403958265220164881522059001332145305181835945500753545816761323572331186819076858629126061741466853192095803271696499566370246847408292810344321288159342548898265362309737341282195035223809708121736526092222544314110543224637314658127695663574465843903075684676318149849180413162769876103354068388948729967760757826580140731494176721481734362326354864450518068783159488226305474946574532741797046775931931179622723314993177546578435875406982418570084129043580601298188242001001453585395700240277994528027947611505557497785058172692308850651125625875655093012641380409279230421750278983165648525035527838266310569369146117249462274623013779480409362006992042258709200417375229893683831575600405905586915017582404336803157051770338210724451112917371586375073779396576848567725283848861738246685570073453371723158563329158028376513784257814324676409935364698116675597189738165189168953651484054353798425918402574622184968938379505301820423886309056913767942206438414501237119270623144369633071586795872208118699588703185733351095638454483981001367190699839542223647262841645831478892154447908472426577440816424805798855028507010482457570432640159029622886951427309871059482812665058046539829438271598391394933756979671946247855583637059776906472152603559634080996757914367140515308934950944497085180210734771548082550278945462169172922705789884866370801572110978834933606661548067246309930808854372518081116740262939407720428925147042105050884280010942317480306857461396369023792325154083985026153439963348603059171687927329122844711018210667186049465890740523819038315789659186498124882340132025828989270853210296912878780234249831371867732399389761431732140010538554480771124924685453221301935787925067401085092721148364786777474943146704726007599242886652524123022618034455739977765920814881440531642884269724269581547167095678268164671387028535287377052756754243180655422317317842756148183566310568401301293242336651029820423886414994313875202227140746509894983982877181245789927941324141875421839129488146668425021185360583560489088576566541958940586395468706945682422183135501187094462634634264099373897134378250928553151032172602911372552564598199274644928459501351221641706915723106825152843559850428012870577295689078140596496919337128348290625279453420968972162387675512312265182331799189788496753955815314426000320502895064608145101305289059222765319293928493783868549330482557632246489387786143523661703441597786437127249881676650271769037333630522209303694420211637788901976003201871046725737793302431040418341997925317847167397997260451689903684556210850175372695170549693185338780548389359816942595866977236942593068528399774536474316139378467306401403271617247063395833739276987397210254905892432565188701223306211265417917832534571449644286668001860764413899170405221598741952800798432860895798034640521553834080733046609422957049661590278875685539486203692940907418729876914242724257931786168601692431931717146909220601230636920850541521899282598818566488025972100687290257374615029483222986649356870051648709372561785742025032243471472596880010448970684240725699003254780813714316474276681512347328917810514139485558164621751398366686180451833770329889473219586713329481008546019863820127461798310962174048903587382205987108947731020152738435081756386249687898347450042877179651605343475443347341308761289030623620174881405517640108204660121881212410130648911403176839337516025558504366420088688374602579004620779417114419908140474452875807145517058942539291420078651775062641602165209059879736866111538339273690159519663305705205777713099385044117334197903567266867013975595255873256315007577926861201162959277337270619600420676080188764383864108088877168612206385751820120356904059576426785095786956241416360345102151206032012908175366136873765630531254382245412991821086536965563816006191424534075533634513619963832271586901954225686173629769866840065158044877670328971684822002522159913293630263152003712713368504399835372979566595478088996991223297652281627276548825042600852182697964988028200054727798096865154359187028143991160253664905677803174307904480919322841009991890278436818979151851314853046663029160007203096851809376972334919727271119069526342392288889814642972117869945365900743622148321595743307284778583205617655818512633057206112586001532517158645377009247349075188694969143073148722645145017380534149974343891313035538411631567146366687001740160086861193680711872158157100856834483812610468714589768827352636564199335746733603237255146474752216819134650239476061455984786151546924293398836168333505046747130647564357921934430190344544521649883402198503327598507325294018907168133269979570441974513856654546104952381144112436819663045502918816140364553346165642578052079810614820656227036156841902986338215377548679757997406449707985809122490369552384506811451848423773333679773390509497967540277412729680042009284196799465212316518936407250995629058278084100989824602813335120337430469197657218657744840129282335914083157626072458500120801956497804914983037658016227551368247504882903212132567962472182782930668253114695756110556213420597496221389025785985270974499692156506932626216598078858217545249876536379855224224849055820262158812329191933140822790341288644716778325390491449417906657980364625802155459810377130415111254030194554513753714597181487526855718553570031272060521338622969717908005615597592475624791001993479712590782827561183556376915487840814553019518231877757235915704093446310798664865155458825109836614794364901091918234014450211893898676140932827891186130972411579691164457097230576019480047291443977714946314925016487860152023308774874212105388281379868818188339256445789685286258907290687097467051659580394711729309372417890208532390163850055498270454186183016500782173212247160936622707110107850306322312810755379086499339905814805355066417812212739396521477939318152537270728041218416273716800642339717362625537186606031410964952885705546145272446038666074639326394017367921267149762594294586497110844476481814501468520174486761515231080080998669570911290592052221976731136002485660445923265438724158699983541219465348463394903215444261685284026439200439528358306313074078817673378935262253553360236576673280190832827372616075214807505492162546495568250898701276325568388040421016750806512905481328573709119474505010309543189867002104657355653164077720964282089436457208388479895814691292804338766751524536010758190454437623837475233559894123946037370587584628031955141927700776400440104072259656257827709095797615468796890871624935268686198648316626899211615215035557481428005761301571542543947067871289864993961497166728766304900466473746778607289979737840201207638260866105077420388720446384307985155641389276077850694704698522695067530184907191408128816018074997439481454649089451806015173676507254880924274475402100535279644507120926668855860564721666751761645347303162598424319569264704914977865478098506181255001094915304147400985760124624427557312102149701688258464367676133078264582139269209755795210270558281210583421995147920351077466009349462818612131384430546485274408884599900550840209070935890269346424542321627979795305443996199050083601699583081352737608389459846223708660210605340241829352351464307975714742328193662628549078111545273524078027761377722918994502903170210487106129239412495324776616305063020531191159137045513651523508762372681014638487853446706854878258282141563836356541147419265216625222935412815640256284317552341081563697271733996568461159319885292029571600178286218892162596320059234035784327541277634926562733286995512594062543024298824179621601808875344393336146377304214829690765286907647120050555250482099224417143141108365800238038973038922248851542498066098843071460293049931200143246271493940131541818713612183929149266493722461340438870739164340251204277644408083737648448063033102049079219538136288297427882063965388635171572560290938363085123631508203041764836205906687402953723679184803856153183836917173345921238695665487323710095904516391267764200061388544923570655172123898819494073144876665840687179395296273186487251637800779481829241005966762306961302019865907075866259025223115956759328661776459168017173353219608466212518637270902645254709491265400934420515171167221097940645890237857236509473196925281999668531732933528648710949782573242095552369242965420923022250708206341862788581517551233512631275424256815456486339630853194025317980474652036460514929363169940839785517620531562326534682825309749316209827050818832907879259391996600113812688609787987011914612304518072740950291611388308770670457491729757607878024718704152385007379373775739989573661773735226085000838937752867451111794215597295077662232540826420879993475690021022910412492968824647002603440491365438242213647505100095073516861816777013198405341518320851228197031944269798758827195972856702766874813321681317639071271829972886605207085778393561962311474008903397182597836631655610480307839359039127831386441968826114771887254011619817386427991609327239256874399287296505360545650448203911439443093292898472734098014317250421887129987528140510924933631002229210266184991934501912747347969102295917606800690968858004513702905833403686539350658777964779803998628364442009722962076467785490232205442672920795743403168382516312480293374253446713048307193842661302065384289545007234046438301395631832241440342250414741081796371185827287029737485827132007937008118164103433413235754261881550637048597928488250730496233980219457948793186043301157183309160581077367191027786183611448163727010877631825332525310124044287571861625444650910849577467804263771686037177266563128145568975281083628279851616394298070340064990448605373023357245140335288059309257337724124135201882727087126997725171414304480070229632248507147847948795949753026231851757929544767789841541407162009942162771203719045731018332243122204813175726365315910088658347252242684694173548195806883586437102213177026673947499832269304677200319422851288556258962789275489615211271460125044362026495624501507970213515937062876528595957040005362391992551781636687929389034883787326522061145085498799905845684383873993206537876218751302511373542377255246166274114042442083036755614870434040647287568877927155699350041823617663469998328929921703633329856390747546942390246145380265872617454092125353232408188285635362753580957055331349683386462587322688152970593999979895325071455754889875639882870855915096337105153380725133559367730309922783071040992692067523686953252902412600475379056653480196771341791094186001033937153896061358819062262407782005215971626654830717734357862769934681611512805638647204045182278610065099612356011786518285282179266611371848188748236792218036787073347748071483917125885425984086029678951302092787851709436409255219899776406777531936725483963592819763403180230367535876173605460758097126392624309612290018075845971500647244185559875831555444545746515324539048085382728998314049798380751997281582425655253394789023851365456971419485642863045150493104825786653830500888481217668089442975059279547322767417429541424838489110793671562813141359244362043050176670775665489872489958458747700259660433568283482573572938215562973693869268044373491989738547664133377871378623830886367894425579218702768183417839568752563329922165252091029589271718313789395736915770028942216260615566763868727816980003237650589890725722761542759071242044229630094822812221149552242616321679535205448083833154694236222965681169419695130353137669970432900127129304484324714965039529316126346580975923094636913743098907795863612821300013693188303435068489101687463254480257327532631534558555813384427510069677592087860178424298600992976277428101105772869989127378617490884763200299247858849714478644545123806386104103015904603837619846872221999966993646354812234832724602148716604700570887088471038121200579256777412831202338278752207165482482146485708342151388672152477148204674622754603072526423447738595159992377223786317726507638801016191986884481806611562382834649956785244240150703122483153181307259425576001730365913301692377793240174103027473372436758469229057401804440380389552917479446376359901605868514794207257905427644973962590367079068061360175366382911983545529503813345539159948476944115780622425778371815470364334810528144181979275045246052782585388964500512704956251145314535333790424272326977501294665481114609178246936147181161072359537841532836502341164469018254637327543718949367538056491233440041458194361633696473650108834390560702730468558360120846479745138190356765432761112501329480035225131933266564083610025548100503743182538793497612558327978117741980396222647464292036598160817269971448344195014231173083644760578748200517622047147810247073938372803440472651317277264115221891733028071449019039047328170193861386190580054147540704480348662399406969444793215476433322358988499265342915510123017563783098829764780136456070156921634520959169520437879963322220616897605990817781750098132217677104616357246929578971665959929456660721589706595107550666066005016664026602232183848954059253784336822544605065712657522137476568101971638261553047926226881286752460414706256641455411605123254992895140670391260552969439420034905971116032955691835640523175844154454186362996297918530387726747803388015026279114984303921765933619857315776692214846926883232625811871577798815439514567327977602809064050752676562876748491037745971855450423435714221095101492271895489971544138011848242262497827113769989246816714515125431970321753632662495422720216598507571116794239195922047041193867852270446921366154573616677038738524897317746753335734007757931278751489384641263871900887139896053400264811840267111423890865817230071459100741317960313147483481207609443697834111588072444324404320055205185943859315659838416989178833854868446437245988550196969550305461814139187544785609847238686611908079377508532972413051742211050004712863272673571214315323942279598363504201547446250803957611618296703094471090843310350898555677778141155952040447358239571884643414693105737969704378868069211348574398541602136422067869470903010791978977523471479126975882912566112750438858347189059150881990784945744694468147892783442710764982814252992348726188656098970803743095017505273270097915459484326234604741940711337514965897115131723842252448645219604278590421440576400109652980655147720765052396138012601138230571960346243587845802764587162864696737615235583016411461246505063691105121027286057671695145887593360831898243468870627350548083258442655019979282525009653292717336343355220587029528913831912311320456123818329020002298530066394169419431968532294843042986511474409336264579735351934209340017096086158647587286412484416216634771844940036969383370232340325691200989739786436175234243182995213457880556509288540455003853250458085676089854240101397104158262735593209527618409994201962500940723918380044256674692915359270445682948546158329411792341454317383239418913623014931433032332063170135131494817206700750422878614774689809017657954390937774600093051577520684966320646395542038467220979663729911868042224836425748708648791361049418779043472365658292241633168352129046939951421633770966324055681705067197931297567635443265611252128072174229760036368107830629417410766106095195206716196181369195439569533525623883417983390312868536869439992799683642490573790265787452992569943674477275931388923285175928244366145287155605709512529295878044105936491884097666547427027161437822372968333670239302483246126911061488759492077439107528584666639816916777787439522161823933382407543249612636600969676559670187268293234852816087792315017579201243581732298046165342244550329154480223174114674764373744666179924936477046206257178473113452250616336912319193896426267373635251736076449155479914683383429977780843498074449964628708940826108943795706113399284678741037241641751144153016606028490014795840557463634468794355511280284702593131379426004994033279845507722725502850914082313339129252087814388598120848714989091849968943302714442212996474025485046375080552932206423095813133261818176851046375462279677677946988242357929078917794504462917495642885043433535468102523335143720649394690408968595438954952614070657579162404607945369211666960353599847836245245424408314101233785752277251900128942960688041688906526340206230998346966422944282434157621731907291274091811562450233012405902614647844654918812467346880770649440940115364216372202396956465421238484492395358754256900659862459676387474239197190599995438818967491556366293133743381770554445018250930362355188527960184573420681373364970359248460212766296406231380954762380031160405279172929086968983418982713201764949552800526475468857590037994757511511477818887284071098405176027162092297713110991969536391013744142559130483376627283096014683394374708692480299718160248113500766164997741341791795487041105952485644664978856348784796706574253415278792082479422740285852441794649071959677146355912438828988342459318409136971913611154318667844870065295642439276840609393237558062906434894044937551094476814406783782557045892111211158373842316296759876572440945087491263251736237685704087116575159247571644019586771435192060189858518064601052160299523235847552579181032524244555349853914271301175477642292653819699395610827359387431293685914563278324626618297004148308160059768853281071505705935025706095191532411108033425187935136656285397926676477035913247751919853043129429889888587411867223148350681035511270151630158168295889603583452683319641742763906669910576147457504836279794572241243509510297396442291551796858796243534976598593702643360711592302112291206996639051923482233210200199988028265916502716544401026177529461864064635063278836829273067644904117015112854396855785963351943994640783304186775021051984443875328095421953904834388050875142104686191136174016207710474529823614372095027304760678356577836110714374246617283063304418786330527664630001564189924149391389726406495470154837998082072939263212079807183257135064820074320884109361084259783248847708629690237507477262941010288666850237146470139466692167542208951507212769392874553350597636135922371380911086815326862913969909243194510903940626656487866371157797636571006302372977014245953479248569786192344573785576596684700303195173238646266670426222468431348711758110179934505492369719798309357583599596081620882602972183361958647715877679709148643291822290164466471680514431276700369259523649962451206110327628431162164714422343478763086262630378370389974404647805849054089012014567077225328996702035015915121023909072110146133889677275748461155442158661944121156914773119322770057213215423792700158592916126802407775630200140199813595673892468748708945086867662836333800598267313547977067268089244079091339267203338594815429955101839370893283631417150005885369966511151020739491253207641495577528193803611328560083417103282960933966855299222136837397041496616443527176570050385160755605735673848234500216158164110082196202091097788214313150140731918942279260784564720611454814795142326008293451077218847522634501546279738147596203804800567348123749207647295623281015480453328163119923037465811858113092525659183043683807536429169313321928189388674064896811079458346933048562570727331026312235423588820540435756676890306708048784092021581147668157873102412555343186734106099721372783662173338852782727803094486879571878492295337992927984419819985753189012891197859708154741207962090313954040393819467884168502937616783791701252593255398436915790622013437153795063456167702216061011769897840815593485927721919429879185225530390789045557038928878239203844032734402914177882617749944277234625828173024613468452585176405757382461349997081001215633297008115438815604107374153817198644464394735006107501597718986758386933324794025699765980145721264641063839717839018618179216595469710429514201789708483920114031689414165573722257874627688542905297248236878198733062085391819007529357538948133986921677515721945837194123140563707119726637359676965249617342381430623923022071578818921618284181358761642348577736498942775897269811164966134629751490501623348895838424674528561485391440332069699899911436397166768719069615966358443056502630015347920505333009614761264146159409137571720612068140320627500168378606568714257407305386960991369547432656273502636665565532187403514859017789301440125561019617976311062269342172049145465611251998934215610488482087176351138619131732419384671477441528042002251875699492570797633841739078094919661680885902760492796249944345654255234877088259378950377910911291269641441833447449667827520368752986684676304808021605970615967012707231598542221387662868689114015222588632476597297955744989033348433660890772197142438490007796530138916397362840982038076418458045483324141617435145318456304537750511743675671664651206389041591882705720660315508156971628541551097425204373221332264580308850299772140914904585872166712130341695528106615858113322037274696191859436859802562240544600132957734787737231369327247279762688072518548443641220266168213972026949445365675660136723735957868273342497687167821054773925797112663531935697912706064524014175889621063902154353322420384448663587028883044707505168947077863111385918769615672071623063016299239163203953183599000016202012266503454839268139603873503644962300009299704846609453625054381017558991271527212642088894032426391365152227064921121390088161937969246671358595429993288854254744486541228389337203542733258586911894444754829930406301503819178116821550576981058081218720509683063911603869441357745832042106610964457545530384538893045090307732433700093207093639010767195896212411499902735058157634214088461233121402267662232146221424947279493468302787167514814883730887049737816664451312665289026075234600666481083591224840137976312816392898506076938367106308260810320401042949330265444087462945341645305932676207449940407314648956778391881239591574342631998142671225149531257541368220682775036945211619334612808778392255407403524086334059942430791116666299705695018008030277379439826217866953107397731865591260430857158582869981079661573330752188035570198553916473366899412571248275256034524491656622468741400750503319055510890403899119973630043221825702059695571319629371868240911869845884469608183527556787362928089415544939068965093064729248878305995546245505175113566785664651690092394824321843043742182158603436413293923789663628356423149398928354575568725802907883368248944513492210766646968126267979395359661996631192826944217945507866662691466293965788282828521690703644767059690329891640657727263282196042456448184905250110322357524740395311030122491608775943699678815004959618862683753741172311693845177705709884043462518456586796937982522789838655831738630182377322786309117317350825964121414076396399201054602459063012759410533822802241406764985411222246938933972769871830508389528861157687841607658238252028033050636075623639229708761927898445753880164648273804094810081668066376473379007102001571774901040234384166457718571118799797400945287930013918373324586192219134045588494878775004888516764172737944365949420062866580962348618293471694105052409809014783609907658435788166146908419371563183691607656854655398467865405974657453002593646568519396782928708955557050171250622388118149730306321377165020954193754865011523102931716233896787582884712694202691756373579898880049328923058440191196335961261863921804309803029947719679289015894918067806230893696187037276206475151009320432651592867739298222018952547866829198167129784749080100912411031039595806545124625065236639457225664424684565582338393013982362227645074523074392675369847105834851463730100501233914394673670516971172806275686524949574138687102161489888350996770633102230065762858142774293422435966962584035726218418561625315546863008434569919943400508837362828996026762666262587370760077080070065503740747092765406679754002979132863080822320216471833715575892468007559657399014735196775053393540006558274837174789768315057267276028888119923422626661229281949900281653276737371127928408992251483804896926059641645531250615429706206433613916175147292334371390484010252630496888551041128304725903904274352909543726527427041861337394021831961998177697954739142370415447523031219267038731166348805395395104517355571025864093007876538192763950919333920742220100503388364966307903647918175854222094214448056581425976245280676478705164017477517643282105144535895484500795132472457995713205448719918266241448325022543696694876950964832193419922016151911459065420939879173866412918615095139784361437457412106657989010390780176797957375664190213081522920623790972075602240059507108234143297093189520818186305679143518161260695694752398739077648793373938953361731111621685923123096404453143194060065135881516790496996037425645090694159319613097060141400439145679079298457058328395391510748387355897456702456115279801171066056330124282620204846908472934094969116544247891701549015141289169633159120423255738167947546863177425817861733358422420719914142591237559180890982729663173235530156481581575015518897064310560522082240723109933221463535023631388065708795194670122439133877026695295011822855714390826152130000962876853509161413695845364601158362690741288530339923875322336789212354855363532249756738736393908553844150112783256282669831536195565938661522446825514508119885569467451917750258248076932754913590338328595006607694069182562375582441441485884866982945856270796361014562588573184664902691209194258052739573150518552653541889932351981700324543628147407186762721418762193460066831606645810974066765666765586323009427444340841243139933100422700574411921873764663178857881794075888684776808972452571728703619230375661483767410543901358115299716456544086229388183801629302696145655169400131875535199870107597588563601774859307067069377289458003864685452301350048068195300927252044814307734127859739165434611463914730719169135569913199475210722518426014819421070878931793365595086160529458928632833694034095086344556123033340437725964834669181303879087458584764288641058394422054045693032425690821551301171108031428408180572389892818843012294890451159667302868112440054538588077590864553948184771406986053602996457421639533425405869730617925311259039031869852118241211150276031233427295599024170284845740027078283260577626957309377358235064716391750267868291584283350568955761013813336190575713490979861655313585815618196013569771300942747505192740151855111602966031178188792481511745726191891912324077270837718866722700620373479351954457862461184155431907308059092472299378575020604298112515382678922485142127664271523811337007989673166194183967186668800950469853591471649040949634093980215914333467305277614605363259207208745854314783993250815824000050147067612252534823016595599685039737042075468504214133899683449038609313654097689832171069356797678817931572340780066761001045137828257943036634220468462785987468550680117596834604692540044738029064344647520892655487617726829725420655600709692153010291026178175898867807802610027939052998723067586569765548416229932465580540819573706885722030972468899789226910005798845925072326055313693795215160718620079278804374679491994342260208609862777262956416574316948526228760656269701839358114648169339538706089331927208648909278456373254477177255240514533750897314032453314797759217393091189502899920098418780741782353291448572092755840830692736285776113005584055030657839820341317108379370304166804649136509573542148714317255348692749211917482104896629667542061224529507307728346963613709717408859283317951937832360911550175239715713712558131243847088560307700304303279965936491852010401714453227810327920603024280884863521534927367165230832464621560185308277793081449971599223801052301871207467059836326093538458651087292738305773292097724347581202810719119779834180431977235141566037598754046812459187516925853294609002075532942233316778196108151342568533754459194517249408269172475096565830569609593425321640362656841562958599769740595207950481989108654504242818589873017838280541696496591544386761614203339182235446839349434414325951480989012518027994221473504352919818360219338691625398924749586385579999736360118696014331087302232697338973768688949557136788081422686660837113625870504955511000712516160302570565893317549361381948454307779778704526073327198532653769804658566648155971652265582518254701133318349046518262516640376256235553785569957654782421456322387317091224369510834342390806621755999061560748315005596270999278578981866512437652550900793183970718817021230459996579586750217213977534129675877955959470128826901979827927822132200563245972516755654706701896463493847776564675548474397263148258970802001659682810211709215274654065218520583333514272688942747765659302512093929720749925600896557390060281140478428254114914232984231203005755389218916557841562771409107378349100897121292028211629875267621515792206141805379427181787411632840152710091236000509780375714201928547849507104660916862385354229610607375697538377516108288788280946845400465061152551077732067531835683811526490968041824864791564160481304552460097246885430545258288892685913507283116035824609298794470986610635911581631836149479588118645003783485833739618859767175001679733710530581187619349250995197681114743132029452137633490015396282197252549476511653228375347574969492439067134266180358649272180320708935584634288235293955941807400927124686369425786662676867590890078521702162372285650254463955488812229505009207821964553518240344888449732997776504954541359860015162093291415202815388121907479137954143189733032246917190911639072782772236537324537184989525765840064404444164542590849638921550034244543810479437928770976685369759497469066607961902241489266188253096851072632217987668931974082199931347908308891078759435497381813745071936573928269345026748919211822759402760321394532390401564759453909270217537854680230016736540051720580846211077901854636731803291394970500260104044827495833320593206556396446861472726893746166588195475801903459026849389065426893920778479341298864510671308371358415924950716298518075006543857900975580952152152712148239178956845849542761899286569924400854087549985322664790046281051230727752578296459661998284189476377504039268748335897160842194105132943069089191484102069509748662360732375544164508739994830376559526637372297811769268041922120269679741263182408682225506479167427662419883869198732651790907082300251535320258981818663429061577892494729553254621458354074794206844674865396569577258773975454537558423314478252524959514507674046522630014084742349423091836929205902489111782641089450560755547724439668561596762252311242209265396948994415136104455806152760581133689181662196690255042850471712642067344561987115041297494906536453346847954701127862027824023251297482657173679327296617241022955491897458506520927544748205964389233797761386641231498079506593939318786160138272757855977319642563802851547299707986151574154752037273467671017102438266736205082309990762658002776077807927074425985591544920742032397364598296462898265199322762344314211913851898126919427532757598081862573173311637563066584637194006405227279932513844354695939585574153948869067186240207074192487176276759760721553741931206589947273121232237961022863566111546209982542572980638436858247989112366205881823524787292324492305864479882768879648236096647116968357547296338310236813199015536948861719696885063467770451009998943602581460062737636357640500985650948697894175429657877432159272561006176838625049358170312996249746244077862598391288305562107865199495743675980197107796484999994595239870648061679717336956684327338143069964180699756681962243709237535878986934512795490353794070914477401506996664005698246578230034211136029599972464932917921746334544670289157340406167291149599391940387705748971626944591726041117322565668444608136382052874201950828028076189619636384078241560898057696841821057822632424328620387503013397662396001828498425466970338551403570162429626567991540382727477513942824911056276118822060736476546797638005900359794877823293530301999485883205512615002227145762662951231342182749281610325816248983998558463614409877538886085911242421001550721759918646312366865908854562105859252399673092615149528733900140585195968186408813351819122017393551040901003170142585267773801873692911591897597262670716635521490507592814439903007235396804334410448228113689187767198691625599107657575673406755086843015712028142602796235271036800203328756638208584882196030698300540853471013189283953984182802198175616692994600429028686071047039204115831182859496486739331011408788296458270541670480873812134039853870931708272505326187491756740029852634096262560564011480007260694236544748700673014377752295507081844923081309305702685293835925088530183843720467937458416176711727802103858465990315655355483364000267285707470883015948610481268961374231316051644534252169026870312098219175714591649954165096964141073680749334353156992623616604077329399855239531225352532313775153922062040160704663350579925472125456510134569252177691647520854330970311851210011117816481450152506860084990543189976031080289147204360344921066105321437631588126319030783701026898028554541596347249009007106214536436305404799201245292515382234892562364564048600722872885906851985509924849717563198053124423818855043915021509159831214154895903056642037129243015404773971529431402851084455109224538271862515099482733509433077339533583717328420522972862291977170519572126637237394420717314778543468305450711698836742225222682717145775084032302874777310094226013420529201741083941726641628651248905704927958659230873683503894562219858555264347464900687897430509259808598375851578730489794939578469715016155319083813603705271868658839520375381376550439145113253128017643485035489668963928526475285305380917199194293303898425925430370829750764836103736056313115770438103777641496377479455500499474881226426333553691653799091579788927417757313730550152009618665961715946024444945564559957153682032426983804771984961627807809446876089306711430664239859324041045170859637738438904688858506635832275687920408947043929226984563453841453115441195185310382823160893057171160949657901960732662375921461747198779877139908311227079073984664453518300942788512332117946331606607284865706439630439888131357246910922727137650276452847498738374341780538769573555110332055933038426547688436111047156063841340700278201180136580445431138219297314450341878490610025850787481505861574318632998879867884250956726725069179179284106330505806937162208566862170993676315591430883526656777493965377020698131236025966203123810512415877126741039209969173279488458980367594928031835167709198143520925538494215328417612374323174080022740128285610238716460853544648746400174895366315293422318835956924466139424702353902367152016212031791643550527845066851665762120143310289839449522456330741942178022961224787737902560962475781967016072076697371184017588711229440536213216305946824706138986174917682932064344341508233823248736733514804536966545496394866603008923098211956753257821059673056307542745958287752176331353238258838056533456417978495480716085325491808048106306733434792073493960764329791336731691328149912276596444540093846225709617600871640084883631198713213653608170871876523734001094005474255017386737297885988003337975705431732111077334446914418474258310956012716409613567222941941850377435457842177004048203538805431506723636787569079830673949196065161430593474505053261824165407810609401869506496195238033305882688319777754101624094666637995178249904246301637947882362952496013591005442304275112624684638130112043997595190733463382762245837925261858204036721216660613440103620539713762614982215062444124278300601380604557020758249089575701539235061706390790903070020132162002915821754839227531147374066289426844329951366621009557805165188274201119859488747942345065458787193038101137295682311453611993984196990138458562528987861048925328440281152031963243477732118182545592911587674331978699172261118562575685468907906106616898628785877804903708821030722587267513465096339656627144949762192166960387447334582727799287642270890691679316367351080285565516153105776156389866428015568066879530194332185265437408980106186381863079998262649002759809278218886000773234973461960134812274011146195504720322028594849159888230918816960803031189783812291240966233802409366066445613067920983410399249397041788470605661582038935924050774779838981204800565047959311153735576287534519368643343895137791105346210319079515178139466169485284830973671005661954607355874393078387724936260590194672096822404422862907907648350185666071413113166959462658253741167691990954817767549958715592152795368339182412915971120647438068082929489341077736759185859710297202080218987866523999353270000746836455459012596140295656129815513480256951478061121531102952150132308738380622223051531498687418136650341188131757265131704980759061900934017798161601421285439484697767566486851961002047656931715730032128781911050493002941116518297533340857254212134905404659470151449898242051181616511258785538515031698816566025949578514745843466639933685495650953740252790919710083268869813416940153914631004611431955093129941246564661869373066610969824820477460444452923034444054449804694891544546978154089573390621759616685061402721196079792756583189264553593650814008920797277214856290876065817910314110861591498152333564448250463804250860879339929306254922761369973555329669290949781728086227367954467087470954339748952606773019210021501590163282122699861272900432833127678310970955268736676965032304400688642245671949392162026374438605973205375745013472673212411348936070534153411741802953697159800745891041136701005717346409615921073646411615817889689713191255663413309152268494727913184049226992979284847572270266908285514441209008823456629649437487775073599480924095093528754190984920127599396437960596302396686160805597366128562603758172286980911121594234351975992189464535900482325057574632449321961580642614914765915407625569330775280124363229576203085428570132209658096981758389671619199138203981776795731836922687069828687162202778915362308748151862611941333262184517583780950919675304497947276511754989525168979584305444960673423901447435876911198144451299707248238910345215244192651269508875191727977735012962564759849934126017052110481583724999281461233920847950610325558345148259601181865758515537706754111377450009697977183166832647947452666659407063506052088734925632962714781781721251282452889004021919011603702411744837641900788868303765679881825203859357232108518161365544277843482593896664339585646471714627308681641140063916147358020726444670689058382346722586745578667937234291769442862748885333593790961184385218865166419576911400675803159615155567016531973672284403913089165949002333231367996067595996935749042789547379810047186698600199335366052408544029916362843299938496991801408243932445036416212720084712843778025011615034074298230658535443063448556870565500829351330053970781132084112418281558330509200212130844943767717285673395804839606561379821001507025245002662103210817125502669016476900789367016767790381863113057016933177615462875377494537843086458149595051405728803064074341538121363811868331585039030916916531726198274263600734273489427085527230768304251506228265905875664100623403768540676234837179212950552698076590055651038464786633584822531037001953005354604470796508701441551043346176374088986370191134456153697221863368333008575608762953521513475391229069868971813351614255756248278962053313036423238866969486635149229174187505454837404265069977157140916551076269810581956508757782673499226353376207301726617049750843428841628742316465179807698864294286852938084873847930701714939680348052118395457989365525872159572967421244630492487041813389630668273706896406295201052041917235003777258326572208532476635682097965846379739015270001682355685702821478226399243012475620357202147939428516237975543801498717517889405819302732352143046081046113466436756215089309548363323983996983279085997911196024387043711697547074148653260564331056993160740605616696132567981208010376366155073980883439283171938427921673430182309405074643212152303771329602503671173892869064800158996998586534566585086891536278603533143475558476202767335591668097844578768616985499474854377659792265517091808090200107462062846673142990522108721004741106677352103241541672096548309624847540474840747901310188043930056328930839217337984480348661100663985163023643689445478679705319737706380089026722574879116819992515597491386175878815631047945622535865356506894961453773982128854249945034782706088775614223261342860731254886176297790800121806965282029353373564207411716446249549419421955461224784826046170980574006742040108812938234889198420371860294489868192879348962881976270879427192067281266647474078645762622248375015627049003613620115413565503230864880346054142578889726132586055288617048226310463991307553218574505311820958235100420833606421237928180596668130070222096232902221341359730219057793728619983724931808458967615573291091370621960935953907949549364099377112580735264755804105727155728004757269050397725121836395194144010105204255938051783770647149607261156673621637362586303144167480232616242280673897208140301473148407910523877565206810078799531643053368794238561348925350100668780845175174372374044345548051182154791113016974401036820902415477696828653045972300624230681175878926213573604352836577453630973594735514676255537026066542763113252493444753851974234930054562193408987526016796157761878584638368535299387634762882493007329544124740374046208776068150183237148435074346446341169469031754065139779770775907863465072000375268959232887957028159012535707986605588189160387451257608836261027259677697928551331420728777369407480276689178598162978202243536024573957884757493722943697888101466883447496693499465867589665060555580846454969836894062579406984002733697764744317556024857130795008614824168769001782764763351146330947650732720912554881654352612199813681160003252896793321554997386798486821856737247262430825786274081795559787071385718476319310486815427618101747339194279481356576641552521423165909069010537141667365019963703370840728414658148714070313507194751329189391847525115782247747440880211610938863304015361975361856574705221309617382896184414686568066877810243806453538996796853048015292277149921738142410863548437743749670494426895139177111577676581951915012585125541995963331483588225206101633366506781789457924142556137649914799328817319064174413806009018819608645598712979445945299321734107022237046609695355406678021511726832779321145624590695365281698536869166063195555137515056212812829252948073407140341998806650469690710954144950793629986285563197565619136238888083694794218971863103064471313522155477260084338401695794789117863925551360920119600295779158221203450155708356081622420665992848644695442988582435904747092042207595639822996961876683485859299060374922243212804010917336182299733444968371813782373946729438584164355845463236720669497429820292774470936820255825117302660472211327798389272525747142258844131984590568534387522176031535832701995671581144887991902199220914879232758307494709576969267223521128197610685923012766795374860850878453064696705919517492106712223691401408753414139937742923955933328693026596589882033736019526848039228750478797505257679513617736422105683630670859102451667713255111639624793937417571530118454010230619580782688545674994512438499923549708595567540440370456227675495406002722566960964139155801134888647073076465698846617091929077183868158884171834653770037797021585232275817913511951198004236158507986408195125020936425704579991050102154897865046380378964126056547639834634744385296244005303855736413093119735446690937882604129526296361095842979609258479477903425944539669694496759812877486836249968677260293254942121876830328771209093355339813246171213574177692659493470283073743897496816939093823214808666504317141136216022679445979801742698136415037971340660625129460779343848887248552517848157627401996604920126863270980396731809834821237023715218396185055672658276452892113074152182528608654840212720577723699860617552783812598287851450702361389765987574817922781846626939736621668779156274527758753588162344969359905181703223053306718533067281552499964230345208586545937658087299234747102487766387548559708213017040795811699226259467701123847149781278962259042368349723263213378820300864240588215636405706964033120156154440808086174172200358850262411533841406426836297511364769138885970632189801428410675258789714491385907914673214496629846708874295837628540527718357444031187650346042644067588255989577542602385724555431306765843600422391353850402393731198464790514193137776454588034227366610402263537504547769990665846007380354911208773470689228713284130984017243409929585980862790532009379209738160601527964967979929486597529134322514521000366898638231032492716900803620533803866287734430071856525617260138319604622478894360006095222828317474622255846743801993113782707395565981709850829027587831403196695682296774027570615385326473976758099018045735300815282847154917375047121153914668627687637554833025104535758321189958682390082369629722014437784113190882611552203937828857449711774023313367435825251769766190325358166420971807419274852667113246757321395596595127688313226050605664857421361747435697049870867549642608321693816813493755842397854190100593441708961484762317865202334760621162349178034813186543696574983575854694474309301494524013768749043945327317558339122572149192637656712594674403580595125031169007594003354568341584453669851654323755866766223566022972694315926128349095161150707798157195451100079206081395125137465997123532664200982965144663464258140011201461240105310679434337896583393073535649954878902306608336593609436043719160309625258276390894379032402343142220223532580349741273097111342879052471235282630831483643863448026019930300187995343438665662457318368937390481252190137055727571461007573198324456021177988824934600634082029890797404553510272399438013758172194917962851898845548955015507868873037572923382066430349146104804511514580535244230764518153218238420300763807998339427413068307866543379395898227587427350101898971636097124482975926122262307457884055144947017128796313140191832751095979659489480666701247952947526652377018141910847604395655940666685320715075430323929927499518308830774880692556832398844969354869188424397242328618756714190859602135853964428872042132337145933416750260451366038183991440539471465911490990174195760167831212425062226667112869590996509139987785227986539616309283917570589560784012081851864940914384946703490908594660204522827369113286246910495112833232043927101256710308250240991476206149966549169803215111219998735809796838421205801163864312615975648459872328323332453952731224336423947630635095912053267728295585589767151692499431752524736379628967560210742370257206123433795990435361766644222512962835986679278039163190349471175935467783184098116990446070441720729832907565099127447106818981413363124465513921776618093943608182339610086964245723315981297718796973043017633885897527697697265177924146243907837848625244901767229639185795964324213121313923985638459542361487195136007270633909237091911996971609567333479113583217469893497707575955672393640510622110438911589408712990568717340056566343560572250508755017219595317296283565023158934085515631470349541602689162447800491518063341530659607727900820680977601481968542000042510069767281804714914782499356734792656220528853871901798592295522329473060316692890278596311304912952154240628493110387049372175963875103035866818618846313060946335989220783103513933167367653755582422516557110449575970179386061623772784741390207229907068338301031412347553479658106307543154236652999139893556439002822748780494305377286952909637094440710778283088075276538710055644924726542043052225908687712913383185776639060386960233551772106289545705449367276197714060526383956772558923238556249358411919599485870799618914414544366557310959994534156070181513507247404204050012623565397669821133413931336264348597395991216567159052044738743059882931034809045742497296822226041151730267259658220990830431042939483133139586569799183954806042152176953845987508128110545343420542082455949415444310048587804469856579527123649284796281672330399084783153463135826149458613454976338175803426303998341912767235873225700263197060305704854838475260503627104244080202863666242140382020263535287084025189822955326405699058669914999602120036693524870157868101002576133448626737440042251073061219994845795933307869429320085789972979873990584301837725764592233448290798795999045684469485536917943067717852712142881660545712493928681986963276255463890958717118463619517785610929703467934704041002785569916917277439969462861449127539583147153986320151191493538885559200764333069256342975577092194784340647334312130512711803962979677058876616337327076753681100479099766910926919569235118699074483985768863165236923017849520226182011725338528487557202168070504048056804025890343049183644151505589940637392200583075161738219320661244224481690530174832336893009143364353070065868285873819067581106412734396142821418075495617803730425168493952116969883968714628425618290050001906526168340168346262888331069441662476548759656080155802046613749100389638132521822396171998971036992059241974537482086280242508212703396715641927478711235410633029138304307139028449312238651652762916859168894276252593029541580390496729170550464457010515848537683190361635955080418988166807762242299285186739038790460548952151843112141433085705940979298342613729851919886092249229787459594410104478729479676026559762137426146137464728667017477602149018273255251119129634319728256788232691854086096385469363897074268288421707961016962302612930586188728369712585850448174446667963461453455693884430427718351696384974054267388994863075951558677826473021354472818347020209972871007915885490084019157485081865993094230441793345795221321282206067267620260102710696799379091354347372303243089973396864944297721592507753773226640587269422685120568190916906859303468209484817069887045401361491728697601720598133332590640271236324537182480096150416329751932288414439427898058775579252063259800832871953658952153620815282695881201183672304417937350074009318972753712893989385392158541680413446225361688432591721769351891747352243271543097785255760636352893658608965879894976141016809020779342664457962163340237502192504180730543498774533366757499884652447430328689903997381853414156252952724582618593605672426383235752130916474954094158530736040416288512362576082445106532784098261883923416601408201063567695155012427619140423753305777172605573072900318919396579957851209715852779614730986605271418970597210996339388525963903729065196069568715463148175898474023369792234441906196785543556776550700918196598758533075907473610272890230620487590694928689512559785512729972033351489402041159206056569673824731974410298224630236700013605879828844344538157776243971661904927396890058952768282775118352314041029506298525226093723826921400144275046320067011856490587772935206545676851552656345850852950303519976324552209422150047449288047927921234811270477363652058515652736827343976755830598159458847594308415310790933794699800604468357758122877870250842830876061035445224443972428078539865716991303914532087355418995380358692453516568267384653153953495824766704623639864279794043481730658076190233228035037286292934771183527497629203115183636448102173656523139008710794218720781133126576854980200920504212205884523745152509034842898971515228783811482354575519878379578302630874169112616918615646459392594337682039831602587635252890047082896460293782531470752782464431325622510009634376835130376174609493507844208120578990522012178043693998150346164027576810789492504038745484785433358299966463686348503870361211023368454019823436454510766250185761341382796874288959301276618275750738648464265151649208860162990655015265339165237188814343265644521807523956458666161462906025696647978927738824064136639764268893750887325877586830175729359080738831457653224473258436893588001260931687756055220035605330669368441958336811083671394269090097534333018308607494975937728358856415739557013930834859330859973505012155089128357642592719498806278693137433449269224394612967975441622921991753087518615622487310450930047060689558277669006283551535892900515322688695714132353749421201440978280075512824339299845623364943383398161518053073432237182559502968078250928441248771371693247723593955066752814658157302887424116403519847932648031975988911311455957994780923051437992975019033033680649434343926075795017187231095567468743027247965235328660176929819978228212497901485116665586540826389752826852583703068472107757006855126632113599047311407916379528561452743983704382694164535404848932685752374905768441826976516034466656088498206305925543821369568072077947807050041176193893116246317016028479319591645840627052662435458330912251256436656284374846486244277738197726490428214072676158099600894158194407284169148499938180906445260400413465550897008754513159082150564416635521603139216181097271629453172708657093615478613807667641647214373228563809929962951035025495072501065639811886004333976811662361249284778258914845777674244688521516242019969105355677697137518297155200027757123883185403573788976551208610919697703854742967092113868769623983180875499078604802172259749195312229753218647982053724962467489862702393733526469875212795431341885499347869735954210664067146516267184647503690658215969150656547357659522743318975277256552310002392551221047105947301268757677462601609961925416413487705174436170439566928153534943440019407599849182714211937359684190542705064980399213004261126030183125287616534629891072944032602492874711470848757813742412561929814626646540928720891876752982999519864634944348232587198055605879480937503567917905973095951461245436122680943514900173929254774307344153022323416741762108860343237464628449910582689437345173207105669290883269176455656153209542574138747179038049123325013489290222732066522070900750333170671005588872194130043516573523898879026636666865437030119474856243177157502297314237465300311449407419416384716782337527550806539432890006478531200750417328625055614180567300832575020503106890825040587765417994223913354438295002634581020766862305724399667305830703286853556067919426050484987277839011880891938073139321382720694108357809820977279616733063555257574623764410180815887083347259547500124982235934801192589509074793371864381384777233986248710471822520403098952635465784126728100085494459027627015685030567817029462695864790676615092952722881316119878611460100178319442461009140045491561599230933088814014073861323349759246176485492956513426797906937019556942876440484019627513429783206515979459189658091022854401274528982357890624176293795455730123022489296320760641046138338824229257678591471183463296454233969220105822044394603233733522533498849610675141726227780649878681352727368534178824609535674032315217317614799995216825501519695699294001731405310964829477602759215497441435101351315034017888523990831197028154468965157152668594922048128567225146806510536256334950374796956813952373974975848462032066124011346936493649172046255753003800915218506776018250528647209976786158633758426122656242066744677525037645934572064536020583743353512540890533138615099947881309001800431341569950647855584255482149045839927591927733452222975147861779023032028919141541703572084546176832783318180302970669456879476588238002516398153713628261060212715629366888842418389685738506540261649786906954519112124109743049084710721964140579257662750472661613778985736187019646204851488040827135892086576908521289705372954381881033324246935681879998423272950212752376593247315236083073245878172633075498791767002981562711784817815308840076222693268455374070611715641657879355556054258452699623566068034587977568517871101526596989232949698138693904012151843353334613905620871422297557853780828759032524891934221013445524529027716262556730373785522650039117150028714510132045185085964511311307132243405940283264192699496681299967968872401296933710772778050026095903586755300043888763881882503646150217523582235290079165513415786384593998601993991922540091591098830875933468766114553900148823909321507072809534744708304780434245474072229636207916032431169120919881542475398627372774048659510786003862009071438339025592000608393335726831503809173239724978252105941989113032033097123961938371124063731581520816819455858077865049844694733114274971329578589521786176111257093752644227122090058634242936278037946027581576428898825199100233108522176431959775776504634702309504062070550084823873688354599465408327046635135057460177638981989260991954057752247404138462423727415333353029018609944386125645545666646133202873738876840737287473662526978214576916538648440961330236006818909703316519866040030812311218745984466077003723555427891585378434884772267200513217725993288326509845587532485527543331409674301645735046574152718318267213342096784022396402117353359863998246907129525306375010599883266883847583920519207429773144558601609417936379324701822796913644606487908966169373728512685516669229187364336890688837701713955031203661185483797989463946556031700184198311536318871690589215136137234865002391867212000890552963584332132302748158765249763829241616260652456890666183125252754153220699585652409512130913765169560546866830865026832406034414012453096504653619971257533640966016890721944251412264981318914181786738353395270852336847328604163255756484596239510248485167834338846001889621060509482476263470462377303485691177094031713107907194830325535507371513839988130948377352913794559825117196983294734128948051712575221733604896473876837852818144532176683747820669165422380951203040385196023288921979142574571234548915148710864808251540846346578421489637985286345723223162882370216214128818136640090125158247917769200369587580842283377225212568761886617920012312320958134987812681914771189082456123736813450699104909054117890462198216797464851120409670042154474783224668601768795590111469979664837191828210527767451226292451505473236095625655000022115987026412932926906387972301555848766634867502895445621860142636263168938063980122828200776695528186541704119865942400058649189093599374317041222804052385086792891267082219166027432365777406388424742423781531877411449727044024279813815407078869070113618404203162876850255979457695457797690351950228771353383860773507442237159465275813893820753499260193575252007429376950208475274462088654674379309318755345542101816669486908279422361130213343989235819324269248726374514665262584124255806224631132862701390864063461532565037493256698256558631970938119039402042041974116088699963703435085581433502578309146776796337328253634524308786923187812357680165192799339716601869736425058564231248862341060085081903152514710506810196522890005364950309586485899535727409419687023353118049791570548712231320874926350266166287250748492634771069817839106563907009002330656902644062010238307443506470143693982679364812510565974513703386927049481572566630934308122361414975672260827519809512432548681338303673415158650102370711990207824643321929050476361669035904170504046117793979468261428050213206576575715427487629090038019193519613230603770755143439116388111237231241915590849924124807836157108920689757292137085869797726777494390771987595541359294653385825740374458880407086226581444045099840460991449492606820772161571732085032922604798430480562247764429774974553777272201231740556318584006057768604754500385056543636256743824926255927977241121466040136963523992572956025839740807265866852988749458965274556989193734884795701618396618891009215105681997053288894486886793524768497720598256463532087123206647214250112347271906180779408730441369009836721142464938446577840344697315648062453653428262014706886603968449412650540057780843614550465659822203769570597005942887012476537221056617165777121718338223310022777232005673986715859455033511467786093296339805163803922515910999609357208248403210180329079734237884989309647786175540081884306079063075860554181345049641890982690478899825928886632973597095452483102730430196100436389249384437333100756954343379424044149159195321255757218747508796349655736825643377916285322763360004597240099957441468022984073162822136895906348343381709840284782133219227154418456790924364043089326857518953397055275650867167306576539049174831073888733684441491821042023277941007117330761229954988660988518904929123009916677689680250462286870574741093941603248355358152803197597545282036674739313898505815730956412763276728086842476374144596319230760973725165506289551488013643603837315398350369749079142914191364248524114024472410840198737998476523908366115187545647747684036477673100167123816615554520268391123610947817234341271628421837519380826252794910726958388013581311121502505239611839635689739303093899857250487986658295056734686929728774095664841873253387429170059889094866855894945437891886871315384536419541969476937046294734483536626830768734786899098818809514245915719515081527921762118502884045428648948558348528498273595104043537308373164956122045272975770520848905243938807009484794699851206877123882015831977377827187836807155489662467987216744827112061545577192342691946018771260614807238401840982758076220481037394813677096582960730322776311834642278822837214219685027832014998057815186063287047728037883399834113940240877121138564573415423230481058280731586266067076101993674843926435194135916779329280420669480643323582215101530083306938928353903242310957013119183883558236048246048662047529119312557686749920646182702239530860221270512512622300042731175169336833761661859727325492274116225705782830288767086405709422538919297960507943329272572245833830783497785738972555289898509433124715770029108752750349590531576265134958575973892379937908279839107119613784296996845132259916612000365203325120551939756369861773346771688675952958143587060952839961701626763721966073284392754805649481614717517160115950570422469645910964959715534281171076123133515049577768068621946451859399560410213164101114553810937065179806529588301308849729579174873332928746349373388721835727973845987711568118403001314693040683069983095892193121303791101526719672723165344305870414893943597456160450326795083925836500315209886754063710357309674579744196892726364578569382487975340086403985317943066048065569024188717626794633681841486805554232286151301674231490330200017448719423540137560310483705142459610794579290860472234715907482899093704862090338872104342513111694212887445591673445632852151433442346260426104007140284716880749482059825237467865512528238752117439856069864689132307390756448770202642137865569430908875548531662185005529387910952750889859857503121303629518719889607587267761452013964425611975406055015936601575432414691190947739848266633452339367854175450701263070375943457403069232388177958898735793354914511046648602788334926078182226364077013279471609522985235365654482712002949729152115601234780302474212987732858253007421510944561849322160510525313049637671844670932997931924797656165057739234972380424099198853659925252807355324718921091056016893896510959577608779862916634787821922990861393792531525509099203575632128227343202043549082152763354094539206374443713097553195113484418835154024155529157997241051182098822962994146704655987848241882216415765041972187001314039322455382926131770832035019073659854037130773924501640625711847870271019884420642345850581685319160198412031755376961110976117147892616186112185290530269334325505345997136387282648376343972480407587109319830060295317806887764493427742649584167100316192764748646692328676691869851217237854035485473772430357715687958374110863095250929595503272472139504338961223009292115090238866635697416608039839816299588866135032873989287997131933607759060933419414771190141195013582391315233529250889051567805546068882197183200435928225982237453433692411008823875462904357890249912831790776022082818891886371692603746164637855901438696907221418670625613230450750032865308154998015043825863150760869598136559734005440254074707681592943751924656037149014301047403217673928819542668660224150038268040634524036342976799000683899015053516887662786110355708623135764028468474959381457260862730563240069932574558765315753002844100753715703965578022258365430863911040652612371406658176078242973985765724526579016127550873255491808007929217203402916582371245291921303409090752850305602401226775297712668755500956105484224596628004128244642092479354076933060916419022503768418745825981096353863249578714338813722036970485151756059526221659623081429474628001859594193362714050232342354528717648892685240177847183821395630558586237671651817901438633548351183720521413254790503649454578112808487188810213304728255483281514192783891450499431626623473374597488615509103673039298122990621566861097273244993869867100712107075281387334767310720449281895287808150154962660377429143965188180525558461134376611214669901361531659943978052079379273717006356172247602868884917925273128918200988879026493774697414524794116574002244808445369635549116297032360327745254771388834858706786046895187345755687793285260241720450754185298299772926008976221415548902900716945557786874290638350048881965672024590220632343583071192446276813490087467433980073893429257387760119253283303650953869986072880017638625619387846566323860145301099094192227344709206052661467750350158987289187555544448866564574311879855701158674778467148871878754778477831039158325312897126290005859633847310186724898218975380366123075291526516171851825219899829806389097198647056690310149435731034130862670157741043238222456438462477386277500249339188136260718169812592378116143001610400487540658120556298403709592916390632386393649870005387345553450016232079646798753572746534122548104969605657568900110763462282613543512800699980617862176013739639629544537410261620653997508695564376682296626493786032308795424413821952776948247957450014591315065169695393586735483398790708035156519474394247744773359504750791539075714397088162647366474034091861575404511989358087517470535824991966803667176536630500105894660733803113921205197369711511269102763132850626664126593504525054518688563761025189866713291520299576727661439651929380738561615416463189369855704601338380971042766354118547352279697241902650909403867146173277915229128212970907231194009579871845626415405686790435960342117728513914096219419151298863904732176110935088037022706306685731199457014472800288777055831417112096379648353321985909243223976060007832953884920011217964649719060821480974520736116917816214943088582942838041815709767140195858823235029222801267829778282919991598443955657349935387672665811591895899711875787498230100725378964128599537815157840468398456442564200039928949937722601426963796570553149930857078352366196004558632789004185700163954803261272809568038059599287945632232090179690843167193256910436754007779248997227176366837258758439300174617486392437822632074023863927104060051780484081203982869598210123713587749080836231807704946210799096422299652992806904759490766310768906472640470546545057557054388346610412257385904587668622190224687233723071709478103587437858536458499140905919020680511344995552883688257776459587100230291018564311516069905307949647032585125552834604923504820023567095382431598019187168474014500349102473134156242229139605715952512064573819866877434601227864103033303596107475928175127765139247167226315466777615176386904724171506117059925237866250074471867731517404381450509570008946058213680236129514979959031819797467264141453661203925213684104604808867666769575430863453675396229246218454321675887616332378976688632873957410693404327228240588238581451452015049483498595321668755312613787177337793745544769078988468058719505498347982125405042936250479081413923565786570780645095473316558482515504515230180142606781215869176528982597691596123100928620165376290955424307759970191759514254374450960403438694654653007921294772957661378919250398208122114491805218870459141551580287671064019525851842446707158324685575122844887827111145581684150866660192307935200062242946513740963819785238334289321941860459712374683220000621457963187681404646487080198959158608532444855997950116337937127927417056915079678203854831654868326562845241544391621619470709050065386194509986725745443425055154651391339997961559699584767862755389655021391798210465710552646551769076752987232345048109439313519652685124279457006096668359873071417801573307027835129641247961608282474865484534011455587219422957693529064283953685322837477949105306065110404322599084226406887601928140435255343880537248169576368041900453849380316688597242614655348937210880045281775217705690867251249938203781699158701253622449273030306738990768284028371343999639218329547047818456407189936792158576695293806501502677383844512626443546186408941886725528844120281819280832717128678128287032890323171533873166092430609918243772102517039350330667294259326596363311482016346552851331355301618972323337055263845396283390418298181197689767404915461089259260387902569661614720457747204062844725375231738288293584137713596881218151328312367647754975617239433491490412879211493000235388628676247307118738206008547911274498580165884741083841009316199877517983278199470410497806937970677954040148471251743257711479952843536977218776216537779447284657138303193585065844657415373194887917463623482824104664351402993109118159536509620809379430991205836032789608143611104237142457557692335148069794678538989284964273987487057128545285638193629130823156913131066287331604812680998866115015305357480332018063656555926586668843698911836849059708203686855773399219554940408650706789623206846144033564455563880049029680721227722104702873154942764886276726970229337186180491161075769964386022461768073388191512690272484598029396329285258782804336791201023399428208580853589551948113927991397284508645763709927313079867687287807798200007688035906118915266324661451455481465377423039996533512916433885706383144655699590010342875220962393768694067875755860592845666698442825615839528774808161750751205911921131198319429437245650273798718946887880791386498613514361245928948995843026986744217688063120803502027065870612894100275430389393779680630325191435603907267053227590762973736898376692826958917813669471867793892117237541841184915826267206668667383677157935839446478199338055091958144769921970241671951362539333448901146833989721805786042468096560813500298384023592452412788732699352602185991903825106206187474260058865711690565125017207580221480246630341560395145741073790901343533264352158722352812329088147486798630942941014731905449229725691071231884222065556412801110023414904300134776545891115957637125176791404949504033802314213026252254497364787861827378511335483304895216626968118277518202811981926046628340507224380828636580200750321498793818412451600969927672503192380544276275623198437643974312056376194762976629958760776349586987542110704455050447602971678279888793278215098388163392303009291103228452308668994942310320419675233776938555405380236389495525953328508767938159212043554731902234645569034311821386390039693956161896559124458678567412751898835593434101626686484985181021104015932963603401295731848829310546358899749504853281073650368255579768823899955258101053136070202207425939056036119657643834624119859040114004950595821186505557611142638838880065455566279595656372404677678391150309413711728420014520517572274556555184230089147023846991929344670844664592893166919831777957501475022835242369715526813755463982607900666796441861637543917122379521536445991631494799325339606732296672983843138068044247491405281721595222499925454846433038404341100020815241147210490383276983455906059186665026292465450432217466378516287940815541733614681101267084921431329530899050490854581276522762463860176438856853932945660871574130309023418932833864305843934870003130468409910671298015876702855533407078717187705593338361159893961253232721886192696371874605002659782543981603964854354895797302435485031662842323674165243414506676797287217844004174223146947849594271393316335630855003576416495631835242831799136588653805062393262477690033959831734527530040249338373560363717235151563050990257338910212321665807475458176044702103932014135408028110921053564344752268348486306615936402817117874558304119991663963561685962828106436209444680104952267951184150580406257614243281093314761195789477993635927700865928763495347925580678478041227241742735419718831144260213836887732157805226306903461629405668443446292234938375924773943151494877638031802425032336408368116201501815267371682789361258054970737511079632140067207764779182767404425760019729353959538698756070591225857336835496712766537347248668492841925948237979655542649553977976647970536702866879856802607592931492381252331536888202864112634920993164788793078554897221497389671640848177194720617670489577121803366736088495192209622047802713193009337615787303300734462485773439052771471608702012500322439802258480917505056587022853435384767719668918563931603415708149171264407312449133016250887093758183889792440560901441663522515424534874761986853273977724424165647594598085844188225021067711016823539882730963597669155698236384535233120729870447783913980869102447496127057300242145973230943513820398182772678096927289126076031733882736004804447490742699488590872062003628388807464731358345165537471809281348966761121408936214158306863760089015499761600812244800527567940544214877780084241290367003301982033961585682186046977934683448919993382031494286793681140281258198749637737155740848636245859860950729951800616098283489683156810313081810585077226221757861990668749963213674155054571174723074234185859864665226943278181708582524691106556033669092867696211394460203484295791494386555490434380153487481648410602461237873034973229469206354542068724403482239997269373219898832788039440490308645188627387567738164586345602720638842918911048682565388788925890019766658082540710253506044602833465471878136075500427768684030118363780006611969921224343617997053033613976376683736019925877058956594393495668994148688266904815769667404352057844189108106006916872152634213558598461104627334821792730354186958077265625558461877570417531511492674993489076991195295148516305374901512130626119012346820973458388871204776635097131070624715150459979260255349098293385063736131741364474759855407562021367725259993492207843965794804737711269298625459137984481374771122064733619681754962351802827608183392658136700072277555159842163158830650751655683846911219260976005709799785605270630634053913431541278438932938307900189448846367955847225811482035328754567243393975042627715945676743104820655848360119949954722484147601927410803857387346608819856062012034546494513110299202538461180326135288721515324442685056099519931053883440907945600891248237569870801969997402968205255463586546668816581561849201512177636335970463142672411652456720130821969639185881664417508763664003382909228983531903805103883613273667436868076405955296417380489453756662811496400694668545211192370229657625998455263137824238974151069393646436495682420925899749406688460828678647172398392258834512018230465777841952752149010191584174594961593571550040877061179632106092142646182808834237659990478998474644845432417991292697565741816546152888179356931532994352810210864182766805541873084306068345771833080609685385885483600357125369733158484689684654644779772156897092220349209865908052807769427606058977684409338191700184998233385623267439521188891725153033236879691527607945785622620782042007544962994990852970326162987451834538760723721047176524524374218268863826235479417692869311728980458689556869593896527505680195319622491165494330142823178660494664409863322120522222378155482136113165021872210165469478575040589394286862152362385748791669025140312251645894578687937746880049067943849473485705249077111799373429359131278263303450315339107032600994387289271955963340677932906054885229851121281174033609360644537114272102792061030033083303716726088962187461690913864309564410213543341230701727960539225276177346921209533756478955022304872335294117555073504604005973502118440550962532097958050905974344735712816800948226273718789806810391210507773580485069497864918415785350608411569093672929996240956311618989294088218176907021131536108137825816337547871463748498101505318593337405742550140938256727816651072266175703638995338325653835446820961471900325543922943660128956575090814010935799213337114580435792131000253756998805452534902364023503862175606316795520912832260964508695772220278949851729743007957648508041662582312984457436957199803108183479942122262632533630555535039439009030027102495544303300970920707212361337708335625419105538420759324670828576499354871475978053860717150557981457776542777347716469096822834948688420318861996991650351029497053490800228669115016967173332606174467630676932794443628666302035199413904352190229709027324891743810298081795582813969826223943973911285215491798037206338109861085159335986901819031542764949431191245653318854870133450616968790302002314685452771937067653421175828126031610868705115016011605518812360603308240751737477168449689574302630883677135635519814135207155490890902960706430534098563020488294583054917608989202860868420005662150578156742508865797369926620972424745870274770085674089174304610272303938899707971587203555405764696638965961082905445746183247275095949204391390617421895440944308412224338177361837516791882287145905086956710779380431337210002739142069204878593999830664300883285217555263612219544052378973131692635726610867515969923941517548982009498166572509126686826891756732198071733779084106371842831505646632069766680980761382729068731457662779395400694265358551463380439591882754654583679209298965426245942331866754493110228446715940571610630545343026646666053654055562543355193730406642878807240566969082227925305595143013462683569725479843821667501257202095643825245447875998678104632203379762287449156288408945006975920132355192983143897968610006900905990111815109585025798649919468498539955166672072043419767226300796505071527742812746204744143016160139863153253208207874395644537872127878698941122560566409723397096866130047417202620361360616775659087179942341728582286669004432098035509276290554585870158993055464271669083023690683312427185188495072943617315024509905130938943728468782283681389959849621490478307185975834393302696538094283997536816814049109154324262197462047157593755440823340709045971443139149693772029557566557707740820868025819368861644463066045578887369521017109708050822159784777000908671708989135105397346589092529449681756400732293328541251678658262079743284393098821092468783665885623589617074656385643698877693809950557524736336475044399682802132490457533571537703639074219771785937570395278617432853838678766832916196499250845636433947856360117629285085639316735419378382921657337219613865196462112719939978348398557295147821775648876645176289905234164067862040385594120546975503707397915546913816937372555257894629696156475829889761145814656124092549298207481008285120299637654053202966111012164578711865072353031427183830758495935707044240053031653793844665536553631229905723069379029923435257273280711968125609953343937367430542727283177651560335575614847959857513252786166375676390457829718731395403337311108195864896232760705029671510723996021270299377828079002432062513473058654495870698182869205904290891254356256853917622127133260493839556812819105030446841714181856434559449030823411578339268083853243056132721916846398883180617091573800754665427805750327935991680166120768782720846213632450901577886035734830751258947365182782076608107355441437008235555209585140134408349729583152941073839182196717255912911293632160086505725193961212310992720711347104058836677443710898323457189524812281826091582096007659664882310673107100049297223175094966932313068595348890770832371166562227599259740819053229069270101306815632302501287828478586313926680286724443526474787584269064413170759749081190464450029967746645600058096961787726826846525525617495217481138286626486866652659082124255042428277821473134755844169471233546141804056422241338234649520881877157720866523511170513994638753302652263204848754586803176997292638821883238683905364999328671722022745253323824633135299195180347269491553252226412765976147889139226182274449285418557891567802806790174506738425179135380467634687805238745569776179277244084189094084248495873538204808095115965112746596759237941178700093447540289336378359055245156851001332450791566525221286587694634929715326194331595342437045949975598361958234074493708852965816604498493695388153426718950901914333244391775753599165938882410777589556850605053508804132277152667744521177895365601120216374864236843477813782676505504539638707645955805182761273325255007196687011784221807054767170602152852193594534084158374034892921995902389788255366876055625377339280277815066092128285365645469339117010393162227221647692314160427479960006504510634020024572372592711094184661618735203373557368698632480070445402953295986421822784509557350055088016702231325747908039204352476339483530524899179070617177424609269914440154437262064809614404723857282120494243663597466008948239275109749143187266878577934623330697732842613146375204360433976951524585932685081298939879104238237096392169056575097914604435304097956594573451413017153124073673917119555545140045586405687007600220727279315795873758192727567920576297334227383505318468544233324670838333571619784977884328500177610366488476294288719522847358145948318344777157650835253467331260785771177336352491284583822820971266261966193137927760291391282130183461203414432303467090466478512029241127318628313539194641423784859924095502822977253731361444890909104477249575333092196682328862081168889958633343373652836437948757991717796403032648829576379564952970566988636977990012242978303648001049434536653836565694858600672227181925335406097109502734220647270183932155310568372578362957989504266055182298438333460402957536467600151663732087694140121402887880139087216249276061724177473390560258016561160766625743995835830036705241164609091747141458579085136105056889362007594826588942776882251838468654826614778307819630193867384124995522122616152925302398201863858806543472841398027229204949235664028907209710341603621875937326873662332952322481126942187409814665030500116916936844614418131777506700776119847961227870780238363163440374922407226470189929514076750787870558672570766799072493660513000334743318937421634141921677227811665808980011834153099402663046180554396351904799601879953617939856376817263375004845171727829748387201157164790591933707582267632859300159776730032581322651569086524544194417221713040737367257779783556553508450598523972709621626958025176597169229877069571027807888281878938007877919251304865182600254808071497958661299379869945598160762276251645446608372523489447340747552873213557967197231409611435410839807531471908662147742618730465505606168232843985104847385424600646536353845024755422741846898215784083496223395142415776166534411964100891961242728366703667111993755050564528913387583392666131619084650148460548232654719719462615625624999713933831011696762696932314064309872462551136847508787123078114266946729292223706051998299810021656160354954753068398852399382536242874249721302784010645140501178571503060630699459980536955981913893767455577760241480560840687612895463328842157811453748586268884007172191616955525356373811358899122245118473512210321136107197551772875715140821096730310688872265448698129476130604608923485552945293787033651366402387359888753002338405782073496574171406091935298441923805387090538738625863018315696771997962799189489044553455646698724305834383274896997082643901572526720858319717144782511567240504472188039912993103758965963161792562660816643637381165598023195173667031461445093944627884923377923425029245090269871079086447358919847072115568318255956982920937918950176687636066802975432659274985040310367472189536103073094340034674110650670306934995051970898126835037803644434256411937781464193370168677662511914570462251207305596007261647920745269659576926004982131376790901906692579231274090559551756618477606455056151019526711270162966676134862096568837006715912984685956782009498600891180395604174634665885977383743384717928888102472596862858099281873496345980127684381974201967619152857005948767666372431619696803885074106741468874956506760114998447074441911919417964199848801794464466440106602164316581684898892643374397666965626945429245471905099394542681149278548956144363565547924907352525133826055230511114188147092802681386023807067344834324291730911267135832515434945941462956858198288524745678191763632430980547495227419347728012198119843740860247892286687602519855389489872757231804073952666054387061238349157715926784514773799065092431701589325475504519171818090684373302179120141793191293044426586337452667693247879431457474460197857106341597539121937790632377446971125705839170588716522147750992975875637835424091304919383301364768638550714537347207376512895827409980066542314820767763584465247832058513408065139657503435524169635104090418990402310190319696614999072208855764193866286098143285794572043481439943383072249388276352853477817906711781986150054281431183026081882261002353982724629284872367205751867647470112387489757406039054977490606822729783648221541390554881438426175164117532875501142826007503116283766374294016051328063002184678364332380067059002863658517199408250622740195384802767352366357977423272552407768672347095226983430414730336205245155724490593906726427985819900125310749653209169540652902153265571030540569416101179475484200289426116050031811734258738729244970674368110691494519281684776626167675877840985804446866276932910149096533782272727378333457953869928886300045543948002593269114778948475203827187295991885173352826319597922199340211003362498941245041579669462452553881875619324393976151203651371237510153149608768756002731114925338891400312843567931118504536305770829467864655357530337695016283224238435003618043204661025156768381569316413155951973125381703394999890874428348564960879033378384833701641472144298696531771099777497173537088236814692837945983940273974408170419680352831346324550233456998498078316419985411938625000515770026001237274644843890827197499573454293915740503127845486518404631138604050565819019682161132679702337376617214383639844579130793246559582576983902089379179340627264238128119823089194370819988427588009666651941083343239741600170123685217460613126374997988250857286741904964889747271811582069343452374954523157013720790200989770774982755521640675063766914085002814068840163890823471161446528828179566204210164504161942683506973900246788176526390757814759061730694846630959742915715981695336194972401454877780338891815359487865457613886632610735470925586248245135472007542824180213741729868729973672906067462043386851571062724671506298612959042239426223753337756676997250535725931307966893600688956127355947595327878589624745465336222331377879005399865883495136345432572964234497518499536848556856770538931596464943599063982290345240378477812633970582255862978673001832653253907389525958365442768061509850767717123002639372259965068490775835441871743805520137919696140409778669401042273976838107315581446845811482569153530642958084029742714741139270210640794211490951516927864069231315381327863828947626754721746168008453176056826156394676561101633031114671116907169756760113684236543821698627400368875769470535618121259275848937380802123731009437003736317751924100337675354438404747113126364816819982359836788648012335701329934418112181757808777774265010945523418887916940123495464133010193124799568600370474213522805318685381379930465881611464767391607160234708107358940774898669518515504662797234162643405411043631911910264750569095483616903151981635206106074256583610534442991597863917080889622074673508327915501056367289800601294971619049431392979941972666648202407828106331257057514957930297575215087513573810860938254979268879800205577157435735543320914470378548967458854774218650491514372823397044185059285012090557089681570086324674638704464046160393685441798909225510910527834278185056157440362441903285988989434799552372809682440893374582651021765149186117757825719374229724840148249820443944410567777612081075509631180221047548972288119850085787835452212132094652591659589382540277737858739308539870303271225851367454916331106786179620664881869292571008646298386075510907078281239124800908377317926109435202578285326803900736563983540670480674585789767719083179637852709715531292042809286333743267551648771493102401512328612844859052373397916434545651947634211974994466209965710988086313474428746245810582353297613292534802788312700927222942191840621242074776077279000879317952503481245406186377304637141836970261130856673780745217321504901046919266314519729939228631272262202600289794365735586093755543086364212705310844636064126217248017642278974374393050845903283480053074067143221676517957662607651144670909589561805737533869044232991051294983883189976575081655356186950858504545621774054866937764444368003991528390867392244503680817782176053146052425415236222245003907108069251264443641754749546119340079876975721499335919449885768742192679376407463230262012291180318750398213293182804793222132686332879623051924228989956543580873145385668023707483125472138558115793533060456880337897420426475410786608328024058604057474930413570620717687005204945875345705211064486182348320390449103225727468452427540516955026168082458723152636093385602341079834802908780560694711518462226830201164847785107893229864549587701400955003150302321188936240939397230147265733788657906346752855358436791556481130224769900543427062462847543661723961931677136001727231077607343983597663366923327434950262490079680075758234683590967172322235016611087079893804469008688569234795743663247813741472985697857933729301963115489165972747567841494191444671086928612293009592834430319027002091445129443889748519249273241737312275143282853982634240152419788386689421854188578594370233007896353237360233191647860894070995987486350543178685880680459566087107726442735479693197949926157082786447314868427387533927272546901533280135779667363209352401436780051540756728934475735176704558990436504597989148745312967576505940521875525393190582394825714307356443717343241940846966158399774703034698160585802319833772186526703167201341585253389043525287238199585059565786993809447747783758257681816493518907837460386338461539539971537830113627235777027623981228517331011386644080982760172801868270451715412195231027694501116277725192935332725585895634389414643759161563571955847894317767620066250614438414164878135040248406183549867374670674697842638820577574906269650016650210286718053013896503380517449398837450165633144330504576183534102006106505238769994540760467723020288627565128692121542370804999990581964938228103599119365995486608124057377802669254107673561207081616292279851562145323121467337121947292088838817349152787686208531142361386342388257224988361079700881882110446827803563890585706418395123612674819719683516778175668688489208763920648012843264636691161666783636582950989399232410262949918582131388517625799361629539746020115779621700598044053953602275942618479093573262188795187819013097118343051610092087403740677773141620641393165664879942608100481958501855281798548309014660406511203999232588653130316931890877677988141552303499636605410718688212559984325838360806576059899286900999683554636422868009139678701466491190107289916632982086226392828391882473399745841565580282260566707521636180620084069924443414220624783441071445543500840011767186205650325307944837220879143233508017908948767407732182446788908825826777511131678328138496664921983657388783843451916434517158143592315413090909013374354315964549662455210978593263248740034575677210555820056233517440072550124702276983280161820143089318626284372962388770268772347260875765825013339088949664147909904057752163119843088329602644901731604648981107068791192192831494506357848534956048510933515713190395952767028346603790385161418183041121807886969363584706093305778452008227375975753755474533399140317962547334300605459601201609992539849243055580202812864682499156247830985351746885709577548697170331792730615503444850363655899810116187119510113400465633509455410485452908086471991526496331369944883218560656728046105591548650070205587234489756864243941797033496006573402329640973473507185573720084584346119679786936032743617929691439661741557166855447562739798002199979586847034724167015821567347289983153186654387356184779119820569594645357389907453978771778062007882681815879985053294688833297391381191248379861292292557092033830255351093746587920927221096976148740184610901317019024945903185445127486126714865524565867053109716201710056853981492364357663097310487555892774598698808511347296779099519127910973181343766449151386199704524290587474200399702995708799135998536120484029094285188052794242102667561443557347383250889280734034951895509162145047058502683384959166640791423274937047651834989001947364840943286734498718134142059799168675330015438583456174359974031223500022023952990041267847752363682887223230076852908578748241238552748973661673431184151396195744699788905155138131345648434781901477355187776998346025682858300705886847667189439201411214895332707933070586538590530654094175532923739876287792978410099275688462679280404495682277610366221623743036990430663732059847967673147597676108497708972695507759348257799194101199039614290814651830199971734441026009819029498750693310440207622518657854904172067538603956443310015079697052802548810274483125274248259735258524652565905995534439087678015427722625859123203377813128408604756738176689285455329335760600480657173112578115193843826021396990308877580709667539427702842549533917640966354156219617425797757123063596969974627777565796416918448280436926893016034089293242167111897180231956990590218269243622807614936581711614604316993388767346517549088559972819300447749681998052167519856113640650018673817582969297511803782176145450685603348344768551247184943989856271998090912008248145691462068787507819653782609485913040317141715717904311715207777723233640052249449322735519176252804546798216057091940675696315824203627008246968729643519339850225122618913921799755434716314048430818916810504397174052150146242957722607318116123107587905490467215104982936061246196746602610987829310517539902035809037211468038975413457623207585648512175541213479012969597466266125601063789165830023880803460100257211901588651052958432569393104160572679691820000092034254881023240221437059851281020511600280789291912502965388455240712896996154734658322086457586011873924239190615430202010234675797550373278284002973535719458818532602383803944909844422379012201664613539539595707828625523006748154208825649927456313677515156995199493301869072866100776235769429596502145438068547361646824494336738169286838048539696217535160748082130778349926670103649985780717568717785399118539131793335447229596736366106506891997621942991404863099154196721079351004497173007394890386613864314287044881173655991454248154608366651578093013598340711261432609592725236819255141119331501546339698719959655573392188481391465480748699411323705382881216224788927007442401813431140621996949355607751779911318546638475860149337536910158830498287177119567544793835935753152044000402935833545272188940198298119699147373488521518931692438672477710144590763628317873515854096000760337669343556406784390280943199579963503870961194437852065421875487691054510550123408857648651555240507782306502990141839394914597650195459804055959776462750938582318273173176299396211551987068829346607887661239385997927128100107446856963407214558866709110184052517110447534254219586348279276280463279105349945644621833035901362241945215967140444113771468540910847389276169396021489015246005248886714112032307924412466667781804002990591011054944419980859901735909000170253921899620059448464447720437019298137031621397688545008565953074520390486458356889786776106871614077036051751128612919366159355501459821440301860989005972213589918428490410106350681800938400557692519212627028199118416387488833566516442165677209211904812396330988523843968858216978044470761754626258403958002437818078079744499861681406600285248042472208178390844990447318208246048751495569000461314144798429277760683547674735983060895562795076588465994853679967612879369871133082626625791446994372729036673559320589642802884932139054395193210191680771739336438390438344911848258231981168209961662232374738400666353132761251061975842227502464874046032012880716945997981132795487009656150220986143941378118758354770034352914794123493348645901679647267587843946550372784105156231848055363154919270507146022420081018565922381137263439588895807874300279445897827767640558547485632295054017218144859608568926118286680389157852653286043833983884113530328499848011546639528077886884116589474393176645890844933189492167407129067906013748558108717958262468262174524178493782275445540208299807548252993839947161631059313326122774501764922951217920555109404851068442959615613786269674789712091511787148636258967105793958511490895563588102400206048578328362433004489177248306890974759053580931890245927203459566231497592296323367913108345193732194788029071832136696099439432788923905883261283426812777149455260180237044763022610421938375661591336715164803186449934220212342204334346711768497424628797020068583390467649085618363617651172147956224980895940455281521205219394152301028933951522104403813901393144991554251574591439186096750847139670610728467988948267598624260339817997793371030942546034907005808652404955439695561237118333833208179775282614098254462457850263105641565547885709767576771173497695317261804709402499158287811934506139566952647183922632734172371636784922259988996179356320195400336407000733474736536094544123395214079621905410562024133181842779913944892399606083775119350248316227205062987866984540112236429818984769693133434496056349469269158100806224032774214297195482958844088693535233574097962695006397637558926811976530632181185209383784444750674283298111384830588781754049309415002383375774489830779016256567370743333675246753053990524354215180692839917855397230920616173423850203673504567800781941884606720284106303275136702217358259337623251583523484212077532570501293049676728936105938116710445079552966251578125556047863525748285548126024374128163616680164037984614434600410556085776283225020500095185115420106635567861691742753711986459603873974804396096193375355194685324130147092948156685662803135568023661587004655219554688226729634680845519443184646799350274667558264583628855944657463026169971118571206974334035844376161123343699202504481645093852460809486152950017435800694405201196987051783492151248429398151112404445799683813175908249805591824183248731029822320304979419146854408147967537551049220506656528604262142376329441482300154737905398062297339989608247227979316247207676297636280571068486861613167373983685062706788154534407897500382723412283773968348167611073269240500810300147828690382596132229073400432779824146921589826868233166112640519970900089574546322960962652682598681235681969751172528283606537150124650572690717042407073691397991703224420666308897958418908683119908150510336941414893630994284297805309143202102284802168323539720856180809573882208675560616972232716447071583615326267695955384171921182194279186719908376659019037670646755970359268388963938513461266077143196699936037380059361659404092500766885868002835195682454140399455248889798694440576929644743749086943531482841257242280134189258362390763635716770173400861528042649320265917194944256242017226404530919733072329739894327442676678176310291042546568872662257421569435727376683918274576790709825697936751142601729434065683307224342336713912049639749442826253298713073918030139751904131711129594884647204178085030793207691702340260989234421223226667393235920232729975223279906333644638153756317966571563447813698029958691433159704171911183942870931472827147779370532167877609278711619931717476867836826679519085758744052309952601521450460547220012436065598803624726198327876468967267058998029363111862761462359442754991347718915093105644882613651394220446663741478013296137600834514180053744795822044275396678224348297809365474631299332797457182694068372687118263085888934812290394912191181965099432758848459120497068861702467534702057271662250103812743470106249161333019687571827284857982567947545601402342702021293610640582264920925867369123034678760120194693195738867628098080512447163800618271980665360475911754269276568547458076889670324713557585342672275119900811775107755740575340663956696232242925412109314232885521344464312263864372133483032509105757645667054136824861930260364954908776266165953394601942139164642731723832886486992759088327601057503661245219080010148049181621897495540053747349487504327284459034705914599594713242258451627332232544995838024217579673011936015930632791048806584274413938489544489982192402914736167479654750416090812172432785576380020421420821119293643166967014885966927715922804672645643694950047049150469901825610244471868952262703992063801112356523590492025466852887865179080577628596923034211886682729788080138051473164868050752148269407816878009472754948667940582448386357053615826759468625440005792501149935654996428988880895866452915285627232587639411913214540203284551001512859777144068164876774205972413653572849017651865583300737445431573938592009294211283660864415584070211928732772421777649136464593686726713876155009540756455367497725275203894833075906743831267610533463644786891358076878785807775891780040967904423748645439487925807021632827789802777012942441504345842003212539582062352196417454095996072280416107474110999536605685768567084188919897222421742516979696193883736748856616544522943753465639670106163070954322634285753272114505979861078351519237297116303812594225301701108629528688172431883556581707678412833754993223426077059967985021892393179098136652942208559309885736253186690657767136221929039218193099837064173259609583841262293030684215253480171895133831095050066674289899664977391015231826557046468195331145793681712481243628074035190971858281676174452554121259719441569748806341469974705674809864295581780120236654609151764713271843338124806017358353874968331030819228029364528570090976759581854302513029785703847347932619685474788142540500716574033306839808141483924483990500154294063332260673164754802385472247283535577386671446895097708426564405555413488651792143668554467552054528252877677489987144047285862496939544243034362247880548265522221375548876102960803726029121259916953977849165804948019951006523177687782698477402422331010075409739110923029146091654799204444283875416230012894701113238814594234517891576610977572038612993534216333718495448790442233431204694733440708583297640557289255032413961045226829505732461589699548233899398282205710088101711669525956459489195965225003847365491731228075085569875176462230074627993539091607382428886666121440848804785826576881225834141887539011004059771524667286391791575611354745408229074858557686439999681174085303971679402367745900794071201506916608131522034149777690017541624902356683220056521735403743248362357472899876374447792334014285446958549748578452115093507359772604262659742927715188498856702506862664255337992882867903361285865114382466119818980846627695871834235040940329183700571318861500308369014105280957430248843262948585665616698009435945543771494361361852833105549878700808159587862967157399750491094969487360849902774929672713544581270281268864063161073852976096586996280097479363521697755556701208148463219797930827250769921845629789910460174084425257398222326194295314743479198525974477632630108420432948088107092163670348057500587159853869433988151869089000688899262833146713722211606453290281635238415003386064562718009488158025772645086450330744301686910825110291461608615263367891972301539040454930713845020723120405107711852078543414518823926020300239803595949870713947212550279963234086433562448162667327006434463188809106086344050912304146754691247408004302085495505844242713964193077800311524224285995459973553179410888626559454525649273468971583742574280211241168876130680471687127092710961817742597333767795234687526957975485253069933691142584746798087629778038632056411135112405289497713311129804839319010605204569611349101129909280072802065783653217285872129578985506113162858700469065151353667680276702614091594784138225110832692516499365360603979120938666784113574866926402922360208147270764799776731060741549482675366736230574333199118049101865512843064817077393345102762901287202656734595158132795805064039395572586933182066120064738617098418823604863700040606695530783048746231768971080345966062288739363299768616870010872672730668110135202195103073248046101243430192778648197939312102139125860604980911460751392831347191786727545351989879125806617921800719296448739173491941367705901985121595805952739371990137904947973188073064040314917901414477691702121599783776936362172672207068216352673027481904256346445415980708251083017342540057475968861921296852346423636128068673779309951685891068993645047452880983287395906936675350093887583095184730661283198572521210923475579597574004264625221727186417187139161563708130963885964110700172636513730309206070602415104119620154122360706788035520836930148358814400848302818324583728556371842454975793384967028850606309708157009720412769986119199028786610080166283836004833906661446987302276056883988091025138321998360639629746314327637145253848849724105330891930422164243558872402512989850717098836429099476156673854925095732324065716607694638388699465291435512975356837090257005177732681340686796820819915548663598899183884139207391127172202507559219731395459508578766737978212775336916508982436656275874145790524857779372159385695132928450401497056556537516522019086947736084404756216148323425667800810956885190862086604769145467711780570679705019032576037375712978648080871590082085898221632457475301467856104242117643025110261772577237342880921385887944252277086068490734242111425804532835344163704426046905123022919257940204120537784907506745363835164972393349852065573137808847263215084876185564612490498742319829271950199097709235819668372819294659113302417313291256750688332989439391930175555630466293852303052790893862582687671837533200051231879336770468779646326022741415191757071080211322578658573147110796284278952727780968907533305097354027912565564827906172823984278457542750863239579447042520813317531362758375385838794906082423213334988003618121286634250029878076353139401280385701101448251676585225908164433397814952597641203018323159629149899962096284693526191593747715516826431861228009774337634433062852644316550538286765807824410759968723180802207953782862769328128782267207020491630649263061642710288055232632685872174628558906177951148430736706848695500082280051899088254599300929866394210858373582136490073117528979938581035044192592766206737246779100759959339937852840726641539911335455320993484116718986450865482033216312072763983296941920511077739547511193932081561036258913138378666346996573059919052616219603448963641472403551229790522891459111836649804357947366420901168046298824466948781849914975534039340983233320383167570025286096502522186544465071251435612348510161155850331549864508344381996326617699786233674792218380061609240200484178968343162382834909391638908835718567956351889796564207183157942279926889007512402716438230340872624834052179977676141466426984589905146362138605180060464107364438055671146643869156995292623794715264099937422200697207160194123807793375867378784702863166116102162430102527126173720015322606985142428957451914512309607529854183642428165758983219464933424791980620293336317278088229682222002359899232784690733963021186377232706195469670646301939544626102271727060230984783374609554074857138836823584917793744807540617720786526418885844605021483621653683239287310507841164100489325043384744364315878495304563823665459339330441362094175754147954287838953835985933285265276861235499882808049789807508843630737951879617920367465538533121336299744678825743283217410083267041952318329418968226874287570435041240607562886278120065389952830483336129426455514153292742222879692473726955176162012891048446451857219110359753618108824733806324892407311294361502742574288010985261272294395323719402952402767600751139091743884988025580730556482622447521306071038014436623707389272059429852541843072777902410727946668691210658333182243137186380949794098223592523474906553860824588978709502169627466261243104321899080294404762119323786978917195767588252064871854706344265370219670244995088127580851696562765790118908033217130504469916211754106475303353195203656438031662991164575397644197473349559848841803351051903041429160408266758456822765203921171698499899868083048268280666299015183502339932909782449712194614625097481634681319122617506789081926545282554712835792834701761641134422430100918522581372189049788064412705866088882042240724838123959884042054689692142668608602650968069464696185266783309643059634633490881117285154725178992328704344540456141687964672311213964004995432008043543995265227529058418929943885459094067121745691745954595569953133528672647149366565962423759849958214551753880208322054657166088344053824627465795948599644029888402330538939413109094915995421332218753014806802794248748641514484778615733270898759838111564011355539683499530461405101196550996623943568291832731429232687922671749670715428033959630728951959543999208240721386887744292883558011553194736378114388760646852248694214843737652475730642827440623292932649532554244355393631590779708883833814190471199535092108426171599537431890320249804123066585502871366385925999775124866604373324504118122364025887429414131088951128386566857424219551415904475290383825924624931178778205201916303631776716051068949768607650096842364433253899047987521649204782690171245548851415701249623420223280611204631997704001059224879800463263212675626010196888097551417469106747750844358587443101807589988697573323755700005681753601061558435386056583402904293273188773030872380993582291261752752358871795823473337251895445878621151269954557501758953310664969867296489291262491973059388664481619275032934733589851603119836528600405980977544320441404619123700014860911667636620618215230483863172994644491223944907453168493295631687061400287715113125039734866536753713874132464095560328539518377610536769517900631814049663026705420693195304945186375274977035843437335473864246025389221694449603718225703697868141698936817184247072256715302434687283043101128705923021411015778839324418152310437238796069196291455365674790703324354683180809382947200776785708667427737551940837498327042985609727335341450232583315546281331485933214168726520145529595339699539359807295140050999479865369780102313923459779043476334890696129410873541002799002326859472735135201471542452958178624008565849388687075131318795106945557629097815977394919695823380235437700927136624262225229016245604759261600494760112232761027770735235832040806755932982605074122333768594649413697075577159804674000987204071905360795040592157551982849174118526641754321211701496003682867405313392333087334108437855873234387761614385177101117154576172721728052821511298843227260579982570779445536612928819921690268448618781471046549118837222943806811093583271647973612232791710682887621128968426377646751410928986281682950353870773085443203520100749875751813440905973685267334816341295971893962452273626637091693916378020371850482290538947859621891610583199556197734924223265043948300980688964354940357152224843209168242046090897053659665289291345867959404620780003352532508488371271893899625579391678774392575280686189926451061893827153457426304481560148500463956776216706827675784533520105044978139407796256707615043548649254791236398764576217487206250062688081467794445562561470034412910030399374332575512594684883080211022781279144790867099261945310118944518887505207567406013633298171506984171793776545062225669142925523792950212833423096984459650104444432639758479926735707249850945363031289210193548843082286926107826904740891768506461063192968771593961717154308204773351307405259844007885747411778641110540653965216990376322344947345248572889277689486433477367045195641536534153537401920174392503221483369903235883973788179586850618947309978797442381099072967262403393298390157886928035406671438093485700286601934990361081495616906864794350920546790931141384698541844904273519328746488722567107393794247645084940617087288223664344180319706266633923772059162950691569959735817634532888362944234703874749887562417375639019922933857802176098659888773263032985015242971167727274508802499173158688268581836147926298187648510142234488217069562100388442393207099920871869254161129751791902060357098047149600149474252325144591931814635821543922949102809867192823737186685993581967007960245213057823541618446347635415493108495888144113818533705230532914640258051663593324242776073147896525872911824665667328983622125234244142474540368228863297035170036108306757131252736756615908945230643581945033885919520730331719439603885058032439222149353929260253998787568053096335643005307091444525885314584162095256626668669761463258674462969763891830352419271728971988303678916348945770297983351453975709525243740309690170074613135339500438431873955578857527910878405917800677616968312708501088267665955731883703823937949929040195899949470059207064940069754920936786550483987501471436473048321864798978982660523443063079123576422973757424645976389077534737278906907845699932554192363075454652569476859973453080982858704330316843790283276623925374786807790576382090981789024845989357779905873914348829861545307972697934480777290414263918887149985108423559447067381239238673878803509755544725270948105731424102593103293059907774185700695579356822131456394106143976147680661761381271494170156860579694132563767727856619909208528115119991308708904320466656096943644338772513364954026170827994932744667130255322171945555797465686065453291179161490597398054148841812302456141342351007326493802971073744116825915253474668665758333050579229953030781117341231929548144561316421810303964115519265016233748117278129359749315504231657863783977135514487372178102396466641909517998041572132055712479828693382690515569976901693122607657018224248916371528142869776911670810052665111368374049841492146849911879667624056145731784577931114569160688577731470975546291571032473910791420810681920659021805736881808120452765833093348380441248183703258570536530658761085870897743482704645571989247889410907285375970788952146541991321330177598168755741008352935355406952920174298916940969105433886043080103572595174741180474294276372250692273432623560519397379909486460655060647960822518549250315048418162597285438869637740138444401585324572221253968783915079528689813158907977836829266008008522203515691556819276352740788299849798522604281453475393284750844567622058364047030161793220466580577098811474190605918232208697644483918927860306553450010464241142845113397606277726577415192768825433509294343709302517636650280900038528752814894159462317634304838321032595542665991638491973139172648225304880928908802524022959321032917966476281463871672334556831928706029125991674350634646084756155218415603911630439416405089980836614277973226249995532923807727753936086131700338052141319100282420490977682161307879147628444597010821056863176310159033621571362466742593706458849349814776187476271071823213644191517020774323948257896035483454344681978914633143737997189232937998172666319660401001742520384883236051048102409677473231741939068142696623977186630477589415062170024695414982308163255085805104428154855871027197417298096297246013660570941359061964892919073885122432367830656760430233625361225071795645913010456373325556955546610331355587878831814917923427194551508478309900681860469259882146921471104720487466123908168422240800985400683695216929561228966833116554397147882084265550911941608230391547077875921768640940347864814241137783537816023576060154356213906657287535819682191532138525738389550744331064336136405279044880154390562392756176450076644611498774091943877403905505833256000576787458871756761664922845182552856210600157813848585704311138585705104522260477931685941327285552243530515744314369644192589925541122736023980516743142944197319043021964344911646229198010311881984145523129527176728039647703383225375418167786253088766043778482502473299870678277292240880074114354269415193429071659466134795717294946285457123846478079417042714910997708330629230576399403024410958400163560282153457425948359752148558262893776710822373862216647625615013422084519681445153388210461517886097097246000828639202867486163067867475867129445602317931580436964270720895403610500457103750420583744993548369929279827055806506209862826170676865380410765951418235436112945997516710088983590290396107926958643497649521366890601469679909372283860377627174310186475469303413671212558056538036445908585512001058409368617807246576211571177843062033427335352652332542269859434159827408119147000220557078383917081517597629556166161090199229248488915566321817145182651798342251330685438295501225867408754972119962943760635575667374861274804566323524955102442917818923974719008101409419551662372412054465129859210980374072961684921304910783963269301077967590327833034141267987799568705202114994911365822190515457455206606446055179483561719041042522810918509824180369199776146019995646402099542933237059507093547248033421525935625425608874664563624525515808186371690631205811559755705921100012756927712931985029293780451525839536388352341065037383599291313800132792082198917750489743879832399694933798260070255235364508866450973544893349953925152428141410840257070689712475455847339375447163011621835347937470223782496614774163696059356752212318816736124293501393089787187210904883862428081209304969960054321267319171883244526683038689200101393191046102481471975580555577922526089319848471132958186492055430855615183079351696255543922321901128343002446698596609576072362743225843398182008109708719938982789507709393635181854789627786836339991500900170544020224496243172112629322223015275440901546662446183754799889783985434314956025690108182916223449985597394028063482008629484342656573963161409200729617645872719462551303225816380487084979890777569455941160919146317994186854705196971473027941456804274510645815190529625671257100957952111080499087241355950991969173205309268629578161537848617408496565007860772984462653914319968678486792786468652262791033407441012353732440142323994088702811033889435461505632618871005451758358620896369769378311581468757441825101786293151919546801666411818210596186537677337813415346672733606827561858188166707819358203104571678250594809680251790806386328656821418965198945167902903329396222690993482572849092937040428694763029821880620231704160573500268374688956124929860454490606422799186147667472475398351464336386516685956366199776625498894814037722085589920138784462634941068837334481594490620010755704034220883103934829448759185403243153084654714852740328083048352690552429811148559343847173081681391672957023859118092988252861751179677183917550537372653456802183027726592813002067387095623128316646865981838794257962440293301467493697876656787711725748906368535823603513906407387555490425712099546233904912204941991464912288114357913262478190447110931964797829217118603654100846907224727762564117358116402580497203121954533256918601672344978088021217187175761759272097849575106281239412257172445899330616588144223261017122022880672739515662676168548153902303035902428310284458826450420378671897447952090692737271194312972792253989633900924569217458947334166505821813886210667327744149807493739073253926899943287816260831348362634350481715266548970978262718565080563076485072580319667629372810718073265655571180846904416383181492882531280442599358271441695715950818282564964620327225488767955779748576161929592723248609746645719300626837401523229456412388432472125516781280977223940952535291047804736607973423039357460549087676802237488785616626573684475765004809348527659159391261959489256475975788520028003501075885295012214619729749252414376696663017723208574554333834673811308750557398170420669242018224505312098356631981812941297401857689693528786027406707662051466208397776074428994562806146496952476653376428838484708071909559807213393314902152640311430994813532419646711315342056283794323277830739493489998499572135149171234826232200742278761736539583100425138254123320969066970302616835903185947595492933531040191385102841160690655275516817034414920010715921405167312488960332792525131389726509025691313384133443621143427872839441471177327592344508128021173910994653832927520590502952036659114231926054261621405634949199351630437934270615980243829579914217670690900311071101053435696180732282714469905249269643525758479595006403684838314866547411387924565063301544710707051896742806696579303792010011215469047880110161939289878037703479064375277420497515673920327232582839606522398137340272602511363691426831478380407157909488937132057862479214645346514315032829665747962019890159905216396381500859016355557128525620812271225706837351557856889083899676582620687707671345422480886375044476243613585927844262292637222996641128211190676390734510975852476892482159037690721670881163266041035499145509300103476863498164758827304708383492119554194895484011267405935727655013730866891622550771598539942321766961121037584263616834416769673522381086794590030983982733407947930985093127307977514696785444117737956545210728684855608598195802757368581721160046875117975430764896021398831917124791437166118356373164294477311888371987412628679685057276095185884380721681315234515523614620458083365061341370825692979371564637335826193652218800510326811271187915037002834098501051005069492558529483372205185754769794041378735719237267100432972313052575411182147515169017582532463138673497697806789810767942630859877988596545847788754982121256696617934619130409476096782073220109972837727925527401946464444302344413681386668478825597202802635429084686043067887635717997415272298841100051009677109184248255270659770838701632849491946136675386459561089155743578623731512842184362195889140353481742715501227580772830246062278026505472449507410277376935399041907878351631451632483519980992948907017390551298343486795209407179240647740127130240477394526254845212118901313014188417054091142041090400214195394514708612504041229694067760229773996622330412239245846316746428587105341565437213230089711142622985162941726700075728174764939344801571441415255877550912043357251850225210602596830084635194068082874020832899458890489403099856005405625557578501331061432206642331185383567185643733986208516364914700302420781620504478127587013268080785084154551413414965523228631961980241355699335979069531123468711127443482226948221087517384553577160089216678223326526329406895254402807019151841177261553544195519691671325776803710089037877294630299975998735731603564400766706884155798898840728720005097171169189625077915054537763166647274729771373812552104458275411232278798258713799525610220987044001617149944787135576485916440369774683276110786315611566127113998482934310740093788998073848582647697988416881267276291524269690854719027916674579455030407565582961486319985545132532754074556520038804467216628047521153120451214356176983832605736660115762705670761602688298003536651406074726468653302563004501667377170443686787115262513026797719708620039458186590208905480610505242743581757778551986965101491977493563322802178759345355983122386272097467936754890444097767615702540281439058662050187061891959397790694136211519581189888675816986854604158428315257166401372292493341207834179361560213948886889371716048425856586580850605403772917107269735577325549052249957718903533661798190707134325452143738719616476882879924394221109218539279580337432305234175033785135341637646911462980794401727140484753687670311901233667759023727073955515324278869836580312329845941070508630025071868143298419970715035800819657144822183224428054917918352899703740132882264257379625837913838349008604073526299980645587790655813957799572488501383633363231733096278897650663089850257408490886407508808123452216324865454143248246291389496516887882395323246636575636556929837613966762496993152151571084014556181441731536448681146703465133483435391374433655457397204957241024147846870084189512927849770263118358690966619860257644957442332480015324520481360193820872949800487063433650300843985714284203163103171214930761479531981995154599658380732985635433799672615102769495926135745594573420219279982421946614801161376848159084416854824843525009565661112375902180210484366996594351953766788390281662083598289216023315569543296942264126312071606252056501115880034935766473047652043841382749842348137697265344389863647540237315715108891962554314339561954833308615012024033259434352688761489596696241522435442041288889915319597219393747224529514750130239212562638220141378405887313281973298040960801368561858510941348250353477952719648078359586157073524206540474598129525482025838922380453609009987094882393092921756448008675465698743087901118933856994929846684776151760663463420328814694684533780397178495756150013715080684553247652201468151436170302743964142866281687774048106058035205655002004704940209355629799290889684624051684321439317782110086829135871086384733413207262103108869929464135179460292865728958884383518609630606452158750057842444060381732759238203534843800453938169715750796558184036736423057528603871040813840413397470139130135023464636997235733202817339940596089623847436070040029206666565972321102907083564805181047515766003365653240680490302583770219185253825950584636890900022097255268950659599457543510156791511366707090492524859586340365624777140752200458377357235401834730030708431939091208075516101305535298359270145194491521937845748727493271434617252493142949377307456529967689237311137180803507946091507051100064227386353358097931335422633450561101636244938660255992280399458327097911787477903083443647879358094694244737213488684188521369739842434277269542446682905271299548436776144895888533490854633561961417052430195406825875605842036837737974152586253201005107993093160204432194723774933583925754501775673536337022428915382985963265936842089465924895667207979525719464126892453248812348038913836461535080539717192612755585028242789788826237426149775763511580638174118826422915553248169356687533431507668415527296262327544597473191555714856807088593144929259994525101874637861843438590413689813186475957405105817019115333587412908798831154016288186338849825766088806743979695471067506418303207386078659726993433213632600530808082697899986899337432797529137404573429121884532250899217005822836920403789673580837330305869925297266158466810312997329498190006200839424734583705041218624512486701450259825814189496897800143622097721575269867757094898592326288937990161415000872087518275027586994879035350510882257821113335432911309439843859144146269978576758777930171473152741657530667192493979757505269521556342358988334480289945271938375965014486177204947392136121138202391471634585210853556983197468420848586768629101228615848416328695666277895684209206263903834264524600009530699602118143187891413290485040937926675869342186703106505661025683225456566697359479045847731939426498919360359065366301299027645950608629677752312945877216623106773967940969214696216360309361479976912780774339986373077421878637557652062806320664998544469528250047183655743642974009545714293777203295717096410828615891862267035137558863315797617658256348277853489533318320721471125424654854979348278598086572785493144875413441511852003294878104381100932664478081840097835645691870301162334244939918428378693944856145643115277942991799745237294767356842054725404303867019559921789624309855626695312585727457524997095552256740400233156157366902216679295585028291440759466742584789569385479779730936817909626949452534403328909212287004268469762748634650559961059536232140165913071185809417235123686466505626480194666787662708309946845711582545913938800725523033651353667401794855490874983059322438414238901921670254010591624714684732268541695495994221536113258753619392367177192709149206176521399816355003326834585323923345572579950911315245738260711060429586362236869071218956791842957403160900634214538478474137808404029850276977633342818523142440981067586457292688561709274676832695354375513259180111856386665534120372579785378429163480641709758774428147392058136282982130349541825996470358291599294689667331977297070930668380521729593586728793814199728060527998422563231819898621693360396783489737926646167120443629593925097089028950382742819578087274530433670668042633161824579631749850909986429544132710215925949480969626461865331295523678537808234793687466135906234368276656791771649887558062195881045384780796362730709661423283820415098656240955298374536282571634492785999322101146730418969661493342747988757919052786953207403646509696830539060360007801438963690594155580178332105925537129829566365502458970841300821981564470321318337148744037209801925461189061315719959663670289993841515538635062542424615812855390722174104363181292360781765767690391860696788599710619816221757491611103792716595162637722290032696994279114518967962022659883193919658776416757801190343794601068616920708550834627456587313373059361777527836870183885761865841871187827572057016337939999485196274201878599945643596099867974727993040229042951121046550695019252597501095126297029471670578560437854341566443771326566908079328941309299263346466164936055072488649202749737879921368798685528389268613983932902025209403049841738938115762480585237025415831827314416373651943564466518787152111257239090176552190566513713694355194392808507038845942492859062702997979645175094261114477216885690370611133762670441382370581792877461021337483335356145232530181517093652546133994589181332742392896525834349122470161929989507140677024586067414445362856170909222887590407928864328975008590496663189468446598164226566084424110174024436346831109471837583002182958021252841538442300602239876316859445381184878189263030406330498783682109158120380507248998534382030093491928541502802817657266872175096859411478692566934651896334794033144713480719361881380981222004881760774056297250957849118543961490379430822139733054704493713985168139317036557015808817091723537834639775143748148932595595821164294276283886818135116302548509842601162718369579742235107915872553558625393067947206731017485170847449743731992846657114900402898690263858998538932261252817358876104359693587120623071438232668053309261282431607324041068263169627288866435990082393273200574649943834241648290733455381328428668217571399109770385996633699981212335790380411498343695379890460457391259631224663865731485100224150990714432911012986297467300512407760711395001692412141111549122930289015347850810173245228114139714720080432178286193858098711789548155202214299722266482452153116332693768469265120366791528918675983169628187120890435263395491800472861986473159152015871050079195872114966625925134666593172502034468165751942501747418748152938625077361746972330916864795922759623685799163094902503966142610893667326819991864399189032119795555120106679517540953119972248399097660531572321918597889537656958643869590107162495182721837512854834675953404427633042242674517142022960304258520782356763139035251643971100369819278478147071177916647997245253063168057983833065313534995642604515123800145229503924695119272308410655621826114407671628250197664531015037344105510171788100540760077953303392748721875322034657282923534087655855089429855493475177037305901270972673462333457859239942660004206111641624996659935772182389570136536389661144305968583737182549995156869392613609468912412966402943373506089477795475988103206877150097591579626814046516127134628789589889299736481463962245828041991861825604855194867080826643213340951468990755715922771798608596866606304094086226021302283469201357444229245752401531094919640119464278238810293551244758983283585875786642248699519736847305189025150033438171009608031225003392857173895435935275207742365556696807718380441544682911783481469493932851212877619837187046423330573882058990332980146475460695084870038048618703692035056814574695320635418642403458142046053113358389342891450289646823339119006158031182872911890489058854251319425798936152359254141007842816619556538550018590163926842154399872911480777928755660806288511976493260494539706528010350855936806920881478598452319602055453201792990062293289724647358898523856920932538029871649986888404849051364539264698069370118703078331969117495173267198295142940306130789676250306121792014881120232064424569060746167685961457386741752130154600558386765805722320023072375405140618009576212559901441309248799751970633274699099133567329873707245826025790652093224844947089661435522020504449578477017284761860189473083823886828552588720828515399275421244860910783243884270924078335537284052209434369704037044301351066221971549508183017811197489850531982524232854566441997913880347631697043297634105983819497865367612427050927213705642196749479667623843833143748818315079718424635530168755024487378456635623910319313506028302102285055369232514179238803170903801456963503789138286654827305459273566516718466712998523257821035034453342367018818719362153896718966121283119425087881668096156856761772401242118723169102607958775848634881459697096542027738562456393653579444351213466405621613090768058370602990110034696447600928119841037539213837800421058896123561005781175594131426199550985121159883603376769975963711590814132539195583395752362677112396567611450086698966199475202032721738335322598604066589291637626798872977697784310826428484047663781487871138759822199482247996267119538179014550078175092950312647464168990044879431077543701540504979125228851388814595707043344786911711668257528131443215624194017218016435944159048762825242948811703728964867879863235906255286866318810163896638654964209292484041879166076066818719949167138388725239414725357346397143536814256081699046008465760460908591223058276417112880901010082327681355006900985920559531975245533475997223556063913612719530087228256658555142986160841251136426385792739017323836997236154911511147985658036653032737629308411054526556637366774997277133709635192919495255081408013431786794538862344592347710547587159797410862311831159800515086506242725432222847299313946126464776282658260612517261911865043271143416232354276243872987294186338881544562213493206392021064332638240097233241740661872475452793026101139333468591083274885044176088948893938798943806458333361344875753659679962169586116966897206181980366118968162689807872358863581026977439732620189133319184062870968875633369365191580397832595536816512307718663103218739432129648228071242976945561253504207350096121903158392873159725630926981696294679692381722953953777257628860022889903671409148923609371971559771964272494250259789246903662228994675546030197182425672228068466826846749531008877111033924873171366638796113928058498513341472392386914191907228270956781217240568854692208904853328801555483124912549082551279413582426226359348046437622670301718623034574242437222467828753312578604370519347708968040698067844784428259878268764763956004776343904389243894980631969018804091814081291546266195568142472801748867176187366172186689595940952817676001727275159165208817466174729731248616836007919968883929110130212658916286405829799468661881140374485412450758687699789619675436648509425086429407229071066045586536502706238282595024020871056298741367316388991309971581806770552820678319017924549331169855343564881133405756099132543802381716157120504973689713348920587032880764924907116379078404142100141465711093148499658819250643498445171494012588623489713205295349084899812884899066689920576734170744571520121604811891908356315260442507241386962824148028192981610127580028642675729980728120319185208230458060081603791653631020057171580445447588772248032929483040925365064944995588002380847323895109596215856828318655632059567223721496749239424650952844975166066023734097858696355490593790651277955547300445726723046223031387403905255026563318959434669244188095676419542651165589945218440542327117729828897555503204343883097068804151184705410688526739071967684160973297955451859497719944260570719040378765361682261571080583721078102173908255872523460509565701865084778398571884811520780903748769485838784940920903673470032537640901288921066387937193766530756282275800585411496465861911135923291201614845390651113924085710924776693433916531285555984370693327867396536645559340280580371021102815420464343480123934231374518393978638622173539473593961851599223988627488152726055844037547121740541941081708773325034915163202868551220011116650021858567740530029468161704686231350852241902001239053276917334379916628564563940889601043329035414759765912319160031739435135842694177388027552886186834492223544618303454400297733287935105931970150949834314247073351568856036974171546412991838901241645894628566243169440333299750622683345843632141942033752415756393290818133457969560989809343777171112168097877337955054291778371347284272870612896584244217660184534039045453619230931519961512542516075380797630215331754475028106912795803216995223312324361781878443094016158406866082955485886566516145982770506701933239222558663434685022311446753901822511088340477033893048511293458056416479081064155738109385323937695239629868755736648809839410521283008234695767918697072422999641400250931385645332332590941233481221416470368876811662184074388310010082840773795930200095133632757993626137243921581710236702453949889536414913960767143725484509124889639579693330524802992597566093460829276205799977266443549474255171322326472504183959471673705466749239660211325815663985719261943276865385897192143475575962540134094218105972645195607357653362181066652235934761126854422863361119457686371941882161739699119681431406672065183773148780051600435065072042872128643056648114408540887770812676210772905007643952069712454170710143424859124454842215031817762002881489113883120117915644661007444443367218949622114502348240822908948793415833919718712474398375030363448858702213127960079329406003154871132145604026264532556246669467008885280641970342278728255508635745474001892108202502063028063636109528277013988511740102376352629401074144361270101404975820759391269903796877849295527725897401371353239410928126636969752813539725105200697191350163253968337123121750300039430570815510185754950994638048722096215533888861023275123605466229417111501376723744866014948186827206626401344095161740147387345724635311914021203894658829078683257823323524553777463987195800733023349604210983295605204136658840390550489912132366583140811708305705836614121123145449903791131564110887062012018930371421408655027016041974001481748877956882244324176881216600363855682392732544273811477337522773208653311325914887888786493298249954618428039091947959750587577369870772669050263328307961648543065367306379369534017555046089109291630728232296983199112095555899774792530000807629095875077462653106557682865792696361304654983932318829986820525700249184489389735664141674049622798594323888139205653322518731044966468845768254039601413797255504487709687438882265050540182592860868040295611059943224143731610963174795157223262690885041320254851761224136481678445670407927010014985166082976367929769299685992683517238222645638972411767730302379885973863553108651578217403985372476875897165910826627186638084369155341201899638833715820714534513860426945959212646290755492380692020735148443155084879298878570689790866899565744159401292082402860346151953564376744120065961199991523393704263584312275441092217617935583211181761117034590340741413941330186616707517845958246541762189325487628340951465535031480759790054235196179357600325222871693862886528136120806325438394832531701891430419657705526735816180686717638315461105279278084908688600533228829054241868067992936499696169438596280211532161359247101426279547636600166435941293810110205900622924342400062698136101021248626142177956407370194751204844867093577708197677832741670222891855431183440443221520286197317833531297240540764721006601367161247881186514401405161257011508405447430330483188091475286563680946028827673246278814401070475127092359914093455656709474834689930751810793747371831913344701385900959249565321808094386907331236601016786176624996770107944199902556324273906976861359140173993499553985627726076269961937335249802720997358773825021335367866888626897733779337851614919915189197519202757593065903877251319701350182539327403602746458902493285780966432888161268478902431286970955086896015713902746425689053874171189927339068147437859671904211404544006827703931041780129655224961223006390162047000801900902796823206736356135062865365677406133533205110808049154454253397480619826716875556086950232849389908033995532261117577853018637969481157985497185844186868157659778650073921397727370591646800640191315091969553531438761324096514356994327123458067258620528945784587514198579683271509749243884041988322672830394731123708202385108980342756247962843519315751848218961564194101055124593885871597667864863061271967505581743689723265886904705391945056396396705938344091169404042144444875267486523082342509856119778570042223487966251740085973066223536709390333412568162821810536229134143944104509163612291295906818965033465397536547549471875096667420493737674385612959413458868374466581652234745615720247770928889238108365204718776407613057893269252087050000144732530567569390488274199907018756802845272169304414690604823611687142470923945945577086982573021092423280086292064609595539559573624618893381652290609284218743224708001529698000064114951905017356978552649893137035878313332823357623698598733595870706623547102104712452740261497140634610630288611176795977218229111743318293203906412171754042778143765753822495367531845048944724942472619042825365302780586043201226795287123224423911866980123223942250861568132000377870575719266386856898704744974256920221385349626302848231955183545445958149168445062389762960751000457636267060943591070617156475073187214617227387442101647711204479338601736692452529282510030660294275895744436165688793161360204957507354981972406399197579886893632602486849268713129590563716945971560028242244087820938302518632287313588943392193677276573882511758369411582240393130155409211521063136934044548623877605666297839851326500817430067079972144166364261415965103027408562555919069563509969633535480089924522724487552570146561988825488089018709527437567935649248617832380128479188718666805332472030614988314085824343007990971416503463188110077029326614488822938444645670823898605905233719340730491212043550184691228824974177772877165492931610400073172645366166454579053715119305468027632048345725413499388592291411364191718434874992824922165694773282825416911820126345401560977934296509797120084064955669443770314371828201154169725427529549930810649307318694162468648682395233912248546084794828051208822600286290135398424762895772730139565756455185405630585469419209184271224860936222551957513331941901765692814283545789398668563707403068432482476364100490177877151651216409020082274243496289401572093708156652516495476251713172100352522499874938698457394207919176994398690048547763382332248645966783936588621780807483772610310566258492430887129572266875953650330167221969060332322103857102870935660059906907118731658029531783101248742365209265174399113661381963746711603468227315924451481166544277219972689839716232092294035813808514796559060737879503999282324166901991784357418761343349099806023520732847277654612374082621528727608191649222716045941602121142141179527509776182644077832281247300375263978144823161048713473972839807341801855542504439164575632108105898768360195092162955110668787971507296976472247966588450800030591759296121823856432183181505549585777038353436086697408838434098942405476094327026881590242110997438221482944346824381748123874192019884827283221017035395982899869982165630037770270581392111959117127439753717905326313482161653881372129912958195912061261076023211487735447361008710236778637552564324203519667985032078221112247484557767329196121949761468029912740368727504652103715148761712256024847761208600282052621044327514803913531704755681414700149983201701541846547026260011482707775602407146150214510269269121121648417746720322815001652960526271367564069252984910551452452818575053374808235372002488520147822798933992327971493969910348808904081795267486972065024809298127889619424029524533066074178043381205527075747784401445164877863451922102118586743829551973902678009004535518590687799193739402656465968916398737741777356041831812701131155973449154361201536521283360677698452548416985001588945635277218540842380335711109368782929450239915189979959415478132627912436251921970629399602473880042994062442346037776437503366070397173495335167494880825867692554836526837323932846371187710510508749894200920083879796001169074108180173959371485526855657338970837384585216454101599518853834308388109342171714309609164513617226156581963819753130782173831324471048144681909205876982871527417497219520614825579864717109161971944665462411064195591320648235958629212908435662190806420900429732883864441833768378056586698044524926318002651298556223728246725410651229442285376806466048352220203052977979747652766564198687643379606591266594531380921668013406656759895794094181252570342383490099186868038636345703410564480816275220234907210527805378249496189366646754116684588619298770808896987907878426670322778724099488251191869885234588170513247814515471861919249554277743175664235825199990996650154716406200871490220519202933932659986893461097762735901237279525195157919490544146353874104799972941040923702370303273548810287839673455584585362557760783594253068816158346356270517899305397954694010432869024155800276492573213752250526615970452270682339612125672076461895957537842739817755209883374202087287361850482404034822214810916409730461506126357301447823945120408703149032941828836948384514646800237525355250266065476826459150090547724346689778684454769383022739933460806809254869205641410890567372768468035268540219455923119376572537847510621443867252839019834368138216804904780233546482152214865684649609116922745811412902877430569093336395132768600895761155758192115377498331766952045582086086350066248790622537141261366643036415977665825271215060999324046705035882430911418915234716217776430947782921468236014369405319418165281271691706220888785942695652565626629502889614147487299481456575914275686193354265989635477051760292844354947967821068933250688468400207514774296171558541292717095410469297892894932390693731006484659627803907125818316650459473032626673963698656069206608838851852026529773307287083954468084074834654232608585946642382957121813932759908595576868153338662335812640892140355259264064459205847212548214005743002725665078138721134427678957926105181336508194765342195916671114589247920045313210017382476338313995010146382949204401601130751691729955165482934693466920458604916152686417434006909418432650846301465746441148320580710956654067994795885593800761518948323899193190424690496510809269133107384777016624385473945892158344643896178562835699482947049078829671295099314563472221213628346998600067645365578520798403420701060842535860193723068767132591132207541040689099500204553756578091289885875965173943393337723629260776974410893320498428907630930564716844698035125689106728781874115041237739129555939279004445718353092146885138741217509457698940655778458675437102702199463518439362419502939180201683425113146372290104143706745565309736456685961285594348011737002125569690444234148220777851454459399603006832218039269632044330253050933485752477687636668815234792562000036248625047683746267714507459782653009312154165928180303876489242215839619324665950348997370146571742093409534298435395298945740692464858523092196741612631646904611977950035725808210255968383325025839560326330329391098299695506003847123939490463428085832930309841948368800475626957673093602489521530665265123640724775165427703117669892258719832809142075098709517305620495716062149820134372679280768252379038824040324674328770816100522421773413016738435895882084163629459129255547099602095478492040045316323701515608999540463014594484349911803440385019880063115184068873482274643460034293363949782176066595187506684556368362076225977580991343592250533726557091686909575397048646316642210393063010808569369450913389380496082424826629990810899504779713092050746027812354423705673875038552339471809086751397171966416579881453429969175167494377800694005516109453634593752599689811299501936234754300529331353376598845035394979922637355526871606746052912516374933125248385786769596973144948182996116944059254811003609552263131011670548179365364484477543643625484497416960998269273380988605505829562223563863144757893130799625210140817325344793801456511729667899853905367089434826891134625743844977806227012027854589319342988279820492088936466473855021909698941127231740297655638493992069276373678877611404016845189809261231246452333932001850796511984440538530295949128168212675890076579917845204234944708191734213905448941170681425266636009748664413218422389478704549916899690695340819343546713175941470206838804003080543655872604143362890506496394209413251716832552404975767822853053291173557360749453256534103466833919015122755924597527365670539754415038585741239271644893934326753896085877179492259184412313588333069912822568409982249149236129594760499237604965291839890245686957126237936430572349238520691759288140891472299093157528975804621809105442445814482145220573111682302074236666506196658770882745965482538548954838949311080342391836529538328050909822644401200146350746136919002226334811900349220755285018145553509118834327664665039157810674019069939919307291934991834935000226341429850273580271656387019540397997046532185362604482844969816460263647519733759690169368185735618138710586787392961689064437250396085788319351679028332067654650387329933073482030149659476237497937098323605087473569292986716736815677215973636516696698382749753945897777349245790069817534440589972219738061035395523345257705490709576982077966348698920150009610728717590132424260234805160399828646656161118197256251528626053481739386782566979803335447505568391152384767341585568774679278561744343339591519345023724477652703633853691109963839433965748997792480104669470276667863293937553607615947358230283828657111764298756102399507908858885636571729770079372107752871356600709332770802058878959167682111423019768032694791089961999005622030859725849606062671750263738506180975833622034669110823762614423960746415981101042477438700002158610216034249891080243638900640123624323146321114882218310551701462535105140366032954212958839628101838767720359180257862648178276601932699041696942544628181012448150520817554636749977189410416933441588242893717385404511570267412526577536648977098513714200221375291888123139251007327379438806985051578465003980899265419090842160065639343640946791358866064769033083841441825969924037072623350913717150868632195830181132398732060324381006901426877097817622472818226184146689528776587588630776676376699209318295765461898839000478348645216892897931832396714819642322908033452320947230541286139134847808177818777878011510228455171977343761722504023192591102813007615789157097856053299662061670063052343721398924257356124071720036533569848248856116399073110384922489660705990415211639416350177210657191639645017703723776515765941358614493376588555860802141810867652119555610570666128518987119145728177641810497419724356859171674160090659218534846202638852380452627774983869064191691866352428987604576297793908780013121674873396620699231147274689538271610063034634610061024947510479667146225640956717116753375632011923089789459977687200560774862260985208210759747436275577892985708063709488453739558155063662076762755270544727862578364628918093563832783125186109096460476548691588726244911007365780247072254161486780637189066127422441250560267508654384874105140265913261722812498520839242575322032220898158222683585353046636268818982428134533479623258201761963300301348891266600963480640598063453715791236502763546814118857321160483180583841554931634890083221351454462473943741161419858977528157649606439919620456936895983594382247675941617525436172656599336283190538610696640061585364020286769330918342433823295808083392912676746193926358445943539396821057422484000978538221849238622082583769540350209062071759233705579130660823267091648742284591996640958943372861184075310373774247861385425980886977003592179764986220645460527478880361926564310079173098670025204234081991808761099838714508870596381436216876674171134959100212511673033015952873395981051578988592477946613732604489284650582205024715278500275252286849608521532303727208117992268771042773585062547388929393765462860019964924859388456787245789704072230654009247233221104318674346442437941995811452694571979346728084462535057224125265240558169808160310401483221560289130036108503594426682857939116823390157106465006368729144106156283812875036596189635295740786174624800493777859951243081350289571614589441641664401395042415934239928661716180204588881167794873134280269650321062486777542097250957659780078556678840691435049060486307833808390925212941179601152599454649652170059100926770697854039735695795382928782035073017586740144804862035003071860809613116534466684278948353873192725058736816310207488517505154028570410660249073213685515219559743022370487410343193281398505132430775063344776440499214024789652301973775931357412282323137848114014321987905352678862355860337282846253535923754342797243292291772733233959677062184096225754486413408401476426536600787911482344623366923678984129034314989905188149104312825389205267938067917164049212908468090557761585095679826224646373511230724520314956413967584132028901000931503236436906917421202773638098178719848128149531682410265297104312052117057805732721302262300373451641898184664967558207180231772803068389778018495920874568455712689250507904484069184557867407195407106735000810188151377336897063342573209821518055826750942487645264206924680059095045711481693907974984440196269855868751232772463466854778471055398217802439654668449383038430068324984245815415669496089101062970750909942091359920829881537431398315453980691495167536816141288501050686217161210130702468345835629008903511696202833346823634643410210905753946260234829565153902018256543154721687246628576961223450071007997524777777739631622687516188545067642167720269955437738965828785273205663245669426478177993517569573105054560242091199934854729933783431073645446315659029506450590024688918017003930238164370874836604954506812893843704698367721173258460240989774612286506756873442505611920910818329261925860815255320629622106461382893452402837706884564972325607943834997378415882567647910488640498593812486308643755988996886633150264418038115360397746444169779353412697988441357983254692158257298009853591086549562993062715626473366714183753927202023345328766979338448719968457910396589265038477635209643263965953295402845451797246138863918593535731316593314693483565910829983764504222697959960075882357617357130986819237662625981088968398770002250496352424820463865000806983281333889336208644522665293895112703088259535905925155007055459382862253032459483091549253959299045545721515649426669524873888408037450365984374786456278190478077913146727493359497100263849704671714645594485527475990528332822627765800990802334758269505142404423796728009887825840475883220705755266170923093867403403237649029120245890483069803193156631190123753582628121214349489114037935332966977820331592590755466516326187677297323059887023881742651129599018066887044524329281328067510933242381642001975182901907710292955222479355637959876271555237333528543309555908256984860892827406392803944598618704564143219247989006848470777535374681137060652909426736264661298982195296153622087893973090744927180437259980152615899207073265051638472072279125995919209085304678119162780459727383502761909446286797369626311605194243757917147960408967885512436712692692851975801459752615338114705523132687361431706153855460992796133584291213152522315977628621977498277152642879547228593170622689452592696205422525117171085558078938502631393997829817814665969603609570693515353315166748598613043187742715738124553475060400793651337027456858524624292094395132041915362292468832256734367934681655443339999865442792371645534346260088370802094168926075102074055845558029127261063442927212548187005889469908372911869328882830361384467384628039254975628290052977556187932096691197693260115037360709784188758231580713612865651642639126633336159316889244473674087343212183578521964680225278886331523444570188051936390178646309969925916394455094393374954590562572633888423422061326987164179470528542129688226379681886452665817186888081593336170989191026469338319445477067971985520991086129230742552739398699399412840647268818182239388225317702231327251792398739567136144045048954010468840570559781141822340719346878408283324008232623694989953294220669057307402904415991100565756028075256667787651449193560100501556781802076447774928113676736777235628747850564856276725854059809328853582109190911005543457510134693611382700765994801348503916446214093925332126047767319590075658099509312848447822988743874198807019422158762263261875080693237474126292851162514427240978120712054108362098369597694784419514884055501072326670546416950454487143172043181967491198011173280014719506015336843588333062265747837325485719751665065140458718041741902160848594362468671012003270033143003952666251805902225051215575164813643934207809166947185848253551985252479115969425699124997896333212946024493348711896055058670425670993094909798342071753203247520858930364098549779802194078518445219744271513610356229255939695889894379742956438561325376043094635757919396817860657871021676292684152946692446444950392188210190518627104996849699761687008750386319825763216803792406030957121047032003983559908406692692576985793715167037499121323692166136575954434000626134035514210133270534138337323073814429052116463452999000403450777843431999551606134598807918759746873344713057474549121232254524576397679174715577864727517114081966306174754393285949773190724611502650179695613773281163569464454397970110739027803139548043762653454546624186074410564674478625074647574609944848346623854415421764026334514463029530869918470865853946019985328130345256014767535287227102103490103024839641128148714940625939636556430361973008773172486797787924481964713899568805432188076240213311009342680433911534309688961304788273390727433131285648073966447802697062927777477833425489942298564835656073852639033173037839879760991231928564524414819615105598597380270357146444046691111397403778685245253489717961531341766519150809146953807947672081420679093911708587053336691717548624997090520812223867629717437377762336791619520300509791366540262957823086516064030460838001747817977443902830536292445154693874962615397806971496414711951713975759389441486362873948065247143805864161014909801777991052911024862749986086407376632068691371879621473361053444769122159408520857845617795749017000810118513092873317351240909289292646133634785972359017343459798292861210418264866662101592810034633657081456285442488670405181907910373211331665606186623498241438713580273490048191733069562431121847686048659176729531489645998749624855912326537739364826282062089821742884968198263472727882033334812056327807027674221052673839977419840326188147103478643091269990969931855013400205455984812690574027852546831536127640074515635558796724920007482294923637193693979248137783590953360922952609803992761432920291700124743661949875602801956230778951196103755568944440505545514591964903905981069773352312169894381544241458089691904694895914939869389749360589354877408234733609993822729614273146714623769583709445919827875904796039949789717847426688077547619189060775049803905812212849031999997674254290463037968833679319007753496861793092509392024811063755939809919270080951271987528740947197902865395429797142954895723730302945417766187644200428393719122026228515442713632301162514468742320777343316292347637308045218904174478893079230649440294852446884836566619973597377365290429638615736777634995643681558166318379437254926699120927039445478632093008214894264253188237689141492322308400419929655092563738947495424809155718128855636991427125379093131009501266556309949171104724975425717104105726365590272490859532477570499637644935598803329573983005480253056080006065492053910044841631861702789203542441223223180317307216626362657859619549156312613074261312939082642073342745834707884797394869790475112824038767035828196682033820546148991351301721081542538811291866616138274166067463792309508004860975443377774886847968419551915682367921930266843255031421702937790815507734845193024967986261721813385631204585253636345160819035358669170550560408201713269869346490655974561408415053750858808385053211514824313260433435633092307400268984502926599437211844732839620119533374386530032779224750593692459559595550971223849136080350583495186947726861910273774164957791540884020279704031440875420262745866306587543788749758369810796894498639121059986256544824355867220761869577144811793678085453751091768176824016182807781440568009650808005651753784430468832416195119546106243984644015115446094887925668494079419149193374875486618726390977402121358991976893726703884936797381660173265062647541765292475597314153578283076671715721991415314998895011899950499418160283843784695729625508406230201322653878924612790121317380450691615441461574955924466488260803599576321230669382731385574393087582252792187347592168146623213808768515457758370434771590244455854301327248611400104721188754966412275218059555235198141280641019548112543800989318931223962538182076690247221040022115962538581689173693245371023349362526087272505532139156712809345905377797912420284260818878700772231067866359612035538790335295250256086199904600074329050440054298974760902407336862015661256648555395930880233815332353704925130618636055373538048556801334366011670128054832928714795462644510792369596772502370853528344946639181130353298692166687198629684157645624713973778325673988972691581085268835071741145237021013778927141484018508204527909875776661550076567689642037845126696866584186313891085198027723399867533938886977776437310696626283539722262614163686015896240889026136989988876286234873099843193950868299173914102381851424405963986672429592158170218255778253943497846374178795488388763937439993836239568988017879469769608791612790963021195772338302563772128671083807211965055091975133404930464164775321805827765694152260747227751142378127557328037352594710420403302157538424953309134087553966877516298420224099410102834844740103176517342850721037136788108787729430070590263644207542305448718401753212103466576964688917152047436190074102179418396814268177596399302633198704951857186797199739269594241646270234843703042687959191147199960265480489978285337347539448760557938746023898047643235648824742282672740719207689687615999430475744058997147130163687672644630615719758087331620930332247760028263015641547562458877459994788804513156156780780120050514211502986133597621896797215697158993542972007926630503298521413240066420745376889547147414398289446400458628594894023445090385743835806907513491305172737084023503119357165277680860627430945626427571070263974693807681436412385006133667299465070224294085321308919166599961164399638421959034418742694905251732730370777610014203647389432583360227725860855389315396130724093983120270924925671694820485321108138690626501224765310707166787533474543634493144405131755376640879583674999161906832185930623646757754954912916749644158843406773010084870627513264671101314797896363953888095210610128374698791967050136942769072415899218255833932483543476138415106127736009290585834303510177912169514784312881960956179124771059249714907785233932288793545203166021807434191142173733966920229715791615978951791171230593754226778417855522191897488387085637570061751731139977833685956857599219394178777972304140338276122902173659460101694945936090702855484004851334483990566097435995384691349768757380915591285597154902087021339233856991975449283358519040577054729890003872555069553560326114438025377917749518909505497113502328801080940712972847682006579223224416263628695325433382205198848779587941825537623741756693510518920148353142928386469617129875412680631383766326712924395958470775277251707397104944175992378675835094338124568215636603939590179864577741121121934707673245859506117560099492464640233897519203541913549740858591726132804671854914947026221143395400374451965747967242614976344745460296837277139647348155888082360721548050041111294966406269669712484565552261564712158366678920291687404145718333684969483441609456142301667898982875779330992782045105938212515680734242334212277015458085958165047674707022276341477893984731527883761044833425565433997225327939196005001458706294978365384820019574679453709670798104910116924462352143460888808403826871835993243669317477090689449655947472140975307283398994283601669876090016819393173072354514934124581747045556280197983290554110621505310587491549654019780679734340678097740351296821686864797258527665252069751690379464549800162961234886695274050340866753254652255306274507862549773797232262591370222953961497282879793641818750652489413409903998210231923607392107132605656230674377030302658417285172917366084902455850394754832113212159564691956225094488355014480850486897834649889475780691097093002068774659907091814189939552069758956626585345431320661821574669335108803590977810149385339483766825326291472137820251504276527462122298756436736853016794321776974015766891204072884756298317748723355761634798020569306583936155087378235829000503332422302854179049720793694765292055557503307862764783217851862088591100269723453677136965929753212992647524546000158551804844593113060367925779940389650540410657836577222747056224951544621615023579832581815746647272160054190031486028970168246843095594567102976725648604604096462954992347795847778765990565499117326826211920220539397410807958152274346153625733868282064734828851450155758046963426167729213351614853242578828417145973673480335422868349569982505329161903799308148901876676751968382512226407993723763479291722053914218175819085854480988048661915670502171683971055795477716099279370990809627810789567982488851403114445520864520137955267415716587827607293988024071838376845616578707663718102629162782047978367069262507684016947535288817050705741904718497296644761155704539716100825162943719321681110215034137001168480603625611280829442652093349349000718842298355653292824682797729023730190264645359375632532993940113222178969692319408376327253459575160643850549902117799548755871176283496535166607744999955748584326080859576958767470051239432443323866207188783476894196838598031517396146794644189623376577706115862445205422198637683475978413002095530467169519700067929455850100127847090340688076599470424989880492533073708561637262682733018834241993295270939712456456616907062388121841260887089648281630603281372754136686703834383287570528259039807466954617953418078883460180769368831502482518699525780827347398650984100281065402908715527580506291199059937127223358096068165490347610158231828577148263145945270896584017378660046774070972528507853200124144900753597164634326557462676916455592089712881229990150802990738817071801149745762790120828716357285252450901908690493259883316951730615718262098470026580743520650141819513871574079965124319869045708716707734536349416864306366494381905482423721640911615909159352825211058550153191951664089341899254744179655055981084869731452379822078385990776886148042725086363691871854966683461611887311948117356345162787000701230950370068755818723901864500153219872042919255924345219344499726708151854588502829136064528408859251596763124782680382940139346632992187155499803762778486048220499561926455184378575574133039457214481710243198319034138307826481672291199275375212699336616260549402682883453320054428177067269631161676536688296187670522774481361377894157473756346003684536837445232035338749406614278192487263987142916472135760327561529778714268531482292714293875946272711620145045003319120440228641182781195519844700892626689349012327687902806786428825796170013822174082166778836446786772043699081822422843533551501843257165139955736977281319254118546613412989427692278697338466194549308430579020442497838182218182655750538659470297639272666766218359256368709689061181899615658606748198306189519770711484399180672500550391717891044600760837619801385861603583455444055286173316420549810849874179718609462272313362863539762662263357711990056000330519230420402334561987027768272362292903205805747188345101302591964656865802061472909414257785438667687650008245313532683046199263396803947942824425566870802228407032873260251890189428308522345336574167540269598838120024983407201955953034181266702998123335111898464844022850655465113892882620330776036204139195680607911284642291020834079023605765969084485077790034373189144803374651541525344265966543201608735879149797403863334039600789718951719330445107597347822246230328365369399441724307377395066263171542021688130042353187559654137929773534237004194462071524872169018163774509512643054958752556589852298072084554681695743394466589762475753581302323436881245633106754791409497095246474019547782808868888521300497197471685974767419498687194140280736685993354620211526963413950514968446909339306366271717696725472325080854287843594040485554427396243999657550961444195097608190330161022201625890991621955046636723221798656765940734170580163068976126112833275427928227533083588829548929836054584994695697047768209249073951289537883163130021994741139665531641448934097429653142108840030375655463698887415685297239919435217443475078951034444343250921406371965782130386451176879025762574512967028195309368644415631668191523031923489878680853078943259868316784401881718306381605776558854044820452398084580500179499732373922487262579574432291381115753969840026903714790869887423252744732467988243060841810078330915805126736623915866317906874315492347969543001371691640763820707284942903405261035017434421798013869480933654267667222169178181716463690483128947241153441164107426352077513426429112342285730951855240544350088209490708341850403643533820306068798527846818629268922182659023553412911772757781341237954806321686324521422312727944050423900802606603201485863320875880544731423061327389667605232058481963554805724388820708903576203133091431865545345325483373269762969014416209864382597006390098054604200979048055377384963632281239766474461035463633711803780991918317542615591574764093721399810556289999151818782903634761142486676056794457281550657482997606078077805767336544581783598553078014871022576790301668846112829136533325443241160438944001083279999718604537084244113716101986134202145344804898417696457727701612531502213264641166930142817916525352137082769370014535302322522263703277759835143563747017731822618399083366168067664679066372285940385716930122827078170040801008436001214248073024264583998934011555219543826174589406353768170617636683202092431901105235988140328390127513007937730018149840474264152906671184100747037199209987572485925578472753637605349377869568284309988872156107223514832747598370985068165280153232434942072794640600958608202369475192265034243299835332656975273914758292332012285790311013975493716127984605168512244639300826852279359976997155945723089911263554115343527250076382255801351929922613872125735463735472545614980677794807165235297726886412685309291040857917993323234252704945481052261617801775549721638979743380960221350282976920647548982962182519654097270236908673706409634175381857246476134554460120212310180288376898802791089586694302672429317227839292783362274983272655363083622791615333821165123085250154276860360787539432950072870337245019013906064866466202564216565276416824800765218285518163501104677404561904943657463929339401394191378158902502817114158460767150313638096591053245230011650732896516292599311575161986165265818673320691088457139277077700857977846835346509784052396988687665622543551374677480991068817847202464014488707366041112891021544337186662083883139983857331852628650812061668353027754843902942865230120359883316246900459736142167662731090345069078898228287368024398862143216136532083041157007663339041205075978273243275277830238078615261176338344770223221030141473456339405345928687586989141114408961158392915522181602013514009753789501205705642296381265690933633018960057279862844079955710872599749096314906665776266486313740084133397276711897446099222427683142242145378452168604381515016275361460910532820809235556566361834234672044661001724499835027019598158344818679965449247281674117603025809277847990958335225645573807266623563476212439634511359769772637302447204221042037250393785298596032356074861398557686758416325271841560610109002609389464712377849113734346935747653548736738124763806457405945049662334855352145246436361661747403203113935913991328238370120459799625602338670196282044902824723067747559908045784954392557913113554062174166039594404554979754062567116344060185547481003539823330778871965836780502167943242181353516845001733025145826961311685294810286360294880640061642773166490521035029844397328054511142691574638167211093588314124745067767720041656133005291726849793136915828934971173005285079584275745880814392740993993964127526533374405952007104401593562130200337354810332865300499432324726264953606226202236132126366487339132604090258603571735832561082257488331966370668684945095448515661380172177587031051650894231632105318578450328390182103064963901506186661163132637582643175796738687987633346893584057035301799947625015640570480807320101726643562459238249316099474783106510049778437809597082966005909394884978487715200526428263189296556387299905378448056005443054890320011349556599249333529603019816620823282727264140346223219038344410317417366284943938640035486953665928179836900015121418662242501400754671001998502046503615686287166354803369875003766797674708169614382993258659679887848307148283752735290759374927869431253595469995508485259978334894740695574583954935968894125226292717747094288236799286364926840173362811476521301390604862779099189508039353689748862259004147210161507606361422882721871227779008963304534668485218590033977257526223736092824711500059144234382673764003670361202583993499275210332675811776205914465904749499222426731665828968161275147000022415079619233165799980050797261108922257949912052831771571011487978500109942270836060367792603257027035396275441428411032073106667204735286270000750043874071342248054280130967224438404485657201894625060097464161910406805870566557435050172060040378456386768949354196179189789757832379303575812009841809838567007422019643673880350698620301174582776114628693388979282298622582730720024605877131320295026263698721949965447149790659980436460435950113038985790775901224396599289781333632184343754203605081225084394365016511826651951107467916142803298206283801589973551757679312464409707496278745990939957507891007209292043112046831538043087119003731440558198720310879256405237991735584303043330211726163814382801678700272194091916941051880897131235226700393286920774142167640517963667274354989963458580445526052802619500617307999747115160817721921726795279312340916367965781226290434650738625112204880331953812713949381286432971388789472528730244822061415067012746433971089150240448792633144007992401536909327999800176818191202001755395653145783714678570540029126622716076113040111528695416824250717292995323834002860889678009788703593516571139800830775753640582875276095122650388475854389616453792386530736867651433969531743756749647323985880207530061556173588341262062555342436753312000496681554148561014375066192097797551729317352666630457187031637630140203932161205617414030430649770081705376614316191614054022706972785239240751461874761254344035039113183871731954855489490467193159245683682428992047731479085118924137974551738094557370832528290925112392975246727357542581382697326775947023511976567262134353793177732539605435487174885062530720545206709799287642128414007302379106043699309403633550166392351376517774963206291887647612664823324823226746958598523415024839650837705401825669056860351283663259504032927595172085422899851427666497408950217486323924392945532626705658342158891159081652985348804992831835174692883169858523001883013352229032412535218074130353373340276986900509539164844039184848558368671893808121519298582485017778005313212551474541970948448495180072308558132609067558983689138336567534613152112018746119248612920681790387075840615938224919846815799279883557557541824832654928026874977919511762523647136525094539836476525160972949792788896020587743480712047180228935244897790848045873992446888586504134798816294353767987096660430926288786279473237378007976734045357203236829111147018100499810197617454627549086155434378977907030215225881692266600526251429838735436699067534838395754551592671154333679535132842443693092559880075459943490713159340851420578280876544380425154799013932947500066201419799272614503348068750387023755233129169895314773347226349530848110978051990790763826452356276814305810887923301316291512792527157230245590850203866583426724839611852419505651747939314365882111441627985414339412077020002176548093255001675639703620781357096065566553670893223584724277396600629028016623693872484787291501075859827009279615513879163588645669715938152186044302589868071914966874694708384328556412018960262144003644611603321160344018951826748945976624224489244269049857869849531406416077700775916484187593334420484474698063711317287239429896182217826649231276466117807701755335798397424338532360362446771622978003988992690221403874360941538357132530160669217939656262140333968019676841638010334157592430784020690061168210435056458809126053084657686751088869575379952382117869280744965163990804029457441663515373834275948329732508906110970877170185751880998798429957479485653541073844735114846173161452049751272837558767048408535419577361053351573360571179727683624818845279842347439772496617511766884020521892793591095728666804940480345948329100492287799194151871301547434461476360007444023971398971685568088329916744327522060282935128169667814148251129418021742814472060850674921008951792373033341244527098756704535299272768134063625599265616054298149570524396553176655186587448074095636625881167118341561495534670367909454629480451597011144135207712459393512284417934896330949030804915697845441515944803043914186722687289990886602760458833948189493093140176184693290202762790979204850045022038268214192361301614478275686856901129126497541442028799154664052523589909014117133083677174971749390298064479865503757801343529410024061144789035489056185340663378996711914155560594103412239936044899086993731715263575302990777383715072540152890245870023253775957289848670652377022146791216353103195986764485007198924501801667208256072537141049646232157929595013243458265567216771354371250777796204348924711117864840153126181348589984424613159149403231354932290896547023600039162610105450269922375613256716536383487175625942132203457631070681631842360043234285113825830514082577590732385706538796510285669114669932888983634721896853243398163236669375416744437991265535791841048517906339857018495681139847721719145068539113361939854801801399940378493313265103025927301822706077148484861503786263810133978056316784923548371494472186559570716086154877832665854723197544377862616971877887083503119169386716233279153345158136670155253958778483387721413061271077396608061952180930054334864861304485536032946337636821680725973910276757630902697182154142943612904105364484139553812335462266065662441644880128417654693211524372209779423190304419943571456630889524314623580199613311179189039687114483432130606704997215966898106743142553284525032362198017643394955329289676422462145437144688023932628026407767566132025351859685043778631345650161010165978616672048904169312479632625139411275386183998451661833506101313185542349374964108388767479195390797283641329973630890837711070001406980062985499167473509225501564950254584465528328902147659198413375470484086282154597602531837497644455604475106266134309463229719685294207504280007540942440449413899808481568182140729072469102837157813548669684941617163505768737329006079662077470386685027710579873229933881053922879928934807655493017444409527747727356693659564235441367706195630349908699513710710881250107675403275946688568466524371393055425375677464750203863585891131095666614832925816216136140093701050544812656822090498561868656682473236545895723675705090911369201780843208491254968662178794851045638664827597124809256966007305133732122487979094642632225049994988989097004915643061414650383966106403790653043450801855192696388440767589449586619609466484642795021090217755041864499097555613899407292895395370727972987167427261628905763664828466225124179499515014397213320169735106246691465562916169092633070348829083000013045840573303965476259411455938710528974640779446211006056397156847296691062351186636867216997656924658003837723214366858687428166902724359212110593789716344544442288214677938024664808262997235564543541043754149816434987582171100091284891903233817166953578067119150274054468745860870165618766431158647172331123674385197241375193145399686323111453562225479754208160354621323123453172765843519765914062043418540115362208133880984818630580408842330164731017172049756760597913797808306667836612271140546046427215066599531207197490720693980211466663050533350401396982684250547314595848923133546875785723759911114697686426560496700469832115714553043659939416812122476490742202577966034922529025273828182410170558119262451970549553416212954604796862591399288623538125494781278815877218186517845820675193466166433968565728671903634958327015081299621597341786294745843645302199752654174666176991707254086498356390912369120777828064132276309259509214920685788363608433977057239088264060112398575992912131056589461324119118722610280537918125981848630937696781088146686189848687075219472472921538119296769073762941957259359090083108628917772724609774034787782003350599298294328829893273089819858605733098826089997256627526277413096559449956144971943669372666994387934397766479522194665016250476682583738430677040767208527832580344848085729860062977936411533833905054643150463859056180137445573750981516366953040665485018552485720783237026988204855932576657582308105070305338270468381439174912058234634314797800870253197299045715345580003513884421752475990401131770643991207212492133107786260591218230042273815588941452571454599554173889356385630344043207648769601151441018438668266820944398868052687161189946651014476358166293473231518207650547160621091970159316405927562091523813129188404838743661863399439463302921728234149809667570896730373845575220763604010354293545048016146131273671127191019635559525397330342288185088539025982554315535155541582074397582105551154602696040893186798772037339843347080420207885760018342208666049485869621816124355921685134193249641790770017079601283150769539965250981386511682272370933873615265583360153716225865590840590446251417228615614464425927270319779654517369397732849513518015100859218723546405043533490843050707694015736303443525626368639320755360711135745352371795932102966519317214486668248751622259825342912258125071791511169193482497802433309603514379395561264395121334796361626331082763874765428446853644118317263942321146153073574800699116445827669731818370509427474418809989076833837841851593358382828107196828054392060000120258619867445848019705337746482295195463196336490994876670849190186665064784550276928717851358700004016897791087908459743181132501410880183756763258443527497215250033623328191365211230203822028495929037502425098408755075910979585531429769060709036645108820981302451579007341126694414231208249376793676963395197462545648984819582606417718919603415326747541248476485454797477890429319885772254088343037333113056249121794246511375280573237943186844325242468417089297354007581165595011585385256212068221437255973629125208427962458813167188164041113182030741717241339449437140916450814930658714819822433520081372583715913863702493420649510871884492592471745535074245239333009486282518289893483318191556869282349801336074264611756693330532792469693139462274385246637178255858670655381809231692065979078967011767447897883971957141878823278563920585882717635463209617467904666011917687986045958286061972479620748209614306999608351029131054743287788755276835766152807565463426768181177194226247758558793882502452042486638323041695973895019881540994167575185632534034127367445163927066087575058681172364424821592028354249100912638226513968424252233554582681717883318759108538332238611960262493722776228422880742568439774991629885341217252814676713924161895628627587419142944350458837316942577847257476088616057426275559043785900767239139496495952674054532322168905626871522008558240488390951872396689697734511189238660789600502815320353092388463250178317472917760304426465848876216265292931322747671747928232510915762678409361915202754461484471487634221168128864853705412219939243785260397428910000426559829882102660895206304942717346829143019641682993292488777337946182216040623174874311479158486740805610877284376115398425878050217094644131055233819682810923918920159590330177320106331194616973642900508491710543477946218482837228578731642893212701686199718591078825442553428821845392242900110291182657529591743783574240686378265979557126904040723974813172181674870723536032863145396270095979119926952602063670687411069857444143792880354315768934145954465680226172487763543860655795970310837501458129600745806069481542053522215418055688576649253799992213700531944132919965683212281330089685638649335080270065403791162626937502573529347554456841033537456855951429715161880186276617419074688120418782574523968029384160560985563535011004850483381240340006620127150864942295278705860613359038099234825512897692778467628739619031937064919738905317045941566914928102624904995559271062336223515708542849243655676464687587856779985874126953241358266201550738558673896085618104913244425903359391817292719514194772157461442379257615910362657125347962390272631641018934208824035070098050414122944103910227774171010130962378169869422641498071596528771855629329479417607084913715157384622598839115613930047890419385945065948396283424627596491406470739219038742261021664437314498709688113992680240198951888999210481469419836601268971887374234620231808218427874283461901822441420843235878391198970829697011498991131927530026231691650974233420510783477565992507854731744211488193307818333784206719873733361421551518316644308850508676411280190989717277629438909275442776019756677231442030913022738744594325676076778679181933030922723033668282827365977319614905694442767969042034926221348189319539593306007882936757106049236142956442046104618686262684686589584320816463336002175321547192511946841443139542321516398653956026797469958410332270613617182585441592670532641504702750552850535627115913227740733126638287684717757340771806900690434753044263233877927924142016558617876607887989632650650340319009911456071470170838032241875272147086537139806051803074041212606937196403974072154489565836615568232516622304394877595284620254823626928699475126843716462900591602156940661838794879152535503476177170318862848230040768720137068580282276692902908397131153896819739421730085314402151363609519903522989127450466259178927747108751822713097050769704211075213928385798569037948281356486918462812848290897183067203962420304914252705351157684913062732380193115664378998203325854139536267465047990831619968443332978084291505616315748477476651156389059915491938578170170705048006211456903194913534900850234038040866948800315883773490594962611892573758257253443130567655187348766197163166874503357114933707621621538828459193928758276722842387319180898286044573101763650798079334890619779986618676939100358530352810840942481217631657096636307132037928065098510032494821014433847482636564779322211386204107895466706247287001986703118836631939087224254701518601719680268302449048559797484272444309437030732042756784823428512116171974082705180559886854704224489950725468519607438674774778424869579878499206646962953726360480236648001454074928401139019420476899328882679875307758263576247141143841293606772944243803906074779816757692173117868247732960829161925429129579368359835282490076100651000030568221894838977498522511624810705559786696763827128119001782909807393753047063422061352743966934925465517033578831871917961852504239989240231469921378169535451569683444540537640521398901265480287704124464729695006652789879334092105643201533421599766436377159292202513916802368536823474706224051882287726885627351238098272257823771823562249243437228611604733391854530468678427786788742801636480259132393223633641154099035042514137065801131481223608301596448158059743934893972633542341821184128907105390312077152125960238931774568665797103097820551197410595119395210636619685325517356500405061684579548842368076642317288817201800290676668569890530984091016705817268904679095620043534655991620185006175040700115574375331093065710183014449434244170840661961361555372896492413641698132440339809997712392289709232111850221386590791425183898879507196134015655006360159044297190646131153730001943680494117281671811865555188385810664342981486824334455642041706002769104735510746819766813996628901926403115815457234313101363124765590688638921783578480482500841293942415274715185150997897518445497710468367064023674053137098469567864608724380045408644429788820051736107717558167782924465280249840771704110116976749595019764271881782137650268639269620099361137970787396002402998689020694687818269602597823541503313997210415744084390661532540553260101596423188512115668003099819325493445701734516314941205184345122678423581604169810745647938004443531343652495661048807343862322247658693025144581960738261338330943854917059868302835851876241304321053635141877128368541918951574163926772011270859776493726973439312763930266347909805906860401561065081366789337749446316183480903421839055123169713978734723789209470981019423693465357782941498369053031651049592740153537930021078441158793512398871099221869784209629563329484821654693007729779095017612553407390926223598708408468854585001091062632460107637509745085196551879360564868309339802875177794632409525789824735133797103950956836872322645239000386854461377428218879622291995918416455854247855519505028665011146841854070273612711546528919399875945787565267535685133193114969843997368829219852342127131871995391745229419479208877816596870444260290055170089608961987899257382312057626344800740318759321969605830140393803332695460816236102701764801810980177729557232105331914952571454022227239481045653867233275096748512959499847219183667641819970539730095624469348167208433016922639919990687470185051845396052861739407888070779037019085098957519388943672173180322972945639671792616298054533374915442774857446917057947233904037272082546049807186490546672416046422071666703980264874173540761245582993458813673324830685501745439489160046933037792295643160898276648739793334852124185456280911863748355116987024331746719591254970589022328456541935838635924409666707411749603891645520311919697149866693409638418170710804224047868675039819563188469869039024202308561034365383854458481726585955343288268551804814002982642053725621071736924047631622448998855250627072074771813384731484474620413707636924463760828759928055379960390493273925962339825672781157959034575100511476897974445455999879120790761173280528585715107951393126518589615111652099262087088294444884117019634019733916537119348944305901731705987395159390715498356381516602638468273726219627252121520419201933711604592870053440017337119954222792725569507009887602286793090897089456867663784418973870819916205942195300924520640806139449977782055294751414956469178056107227153859915893006652995383017485565665779433562680128439128049501556670988635340329451152426267438611185631535934868615851042830533845363852175765155250639320717949106667546915943605546718150316367507262351865490765848906318650766103950295344554881711460622606023768570346564931488577170438911966396235760954951105466718435320404123895772162325426538639715492441345409540678228311577555376303079513860544590369821699678635537034667358541918442721822892169370251814975922889063051898494956048738228239596497665875555125552405917409315937270975394034230787761090567564800232371298385583440505131966090728876993108660718944342565230107525901384878045349378412807361136894606053290262607032505531147309066357995746433542694727506141851154091425182983216086267377689226325399449899791526912468010311655851580809195010155459805341545589202984528418546197870612456246990247270506993362502032268658686659297896333302298721433935513999191913511284044721504941269363053589701815867560859570693556272097753443186954981468709751234297113941234317219608886678983803766221958389932325206726106456653104163489836303186420225400460143563097612805770215003543976694689490346491564344871940601636008461594162476802382674591652474854118425576509953550318723464420219847130747701483750200071413476043349587100163670798894774277372550221477564533855930870787529320198527281640102642602914087371888607531355009417175289332931783316747303928006713353080336801233374200469295757131589416332658564952740737149835347554412210617511565609210961735454267732950820636126399864314498698439445502539735557712058856535691341776905286202218661110996762711161814394106958506445779464866892058497426392771067874093260582922304645050981878235398301795900812065104290932014370996553652148014953663284134776591165061539857137723855489882348489921156062254507403829424204838103491258565117192953219232441376410911919761397668299252955065111172752143715228199675729564660208892714357770845464742211765028182577460156520690551421857270550435175539993738220542802167219727021056142671918443840825635030298299543660948876209992849981612581574215075064264460678983013683862691279518999485713021861819271987172914654937022634281081054701562938633290716540146957305292246453546621238866360675738558238788041250296797865025141127655873257967488636651225175704217194135087914243629913934723821961000961783608473226836923490881363991854465081881401096556502948152215568695133793721250054757523593972218027262948884864720987469687698716149659920711814252705968253389785744425467636275885120717901580302672702186175031716899579942830213138100682661208006616313471178025327335067411740354542158303526256588298093962065031560118508501849470493897110191801229200643480892243058314241686903122594313922677572782340458099924687743208260168072026278525577593523389614604007654591152591915819652462495333474396554702637748831588759494342068309302433415681175966567805626593085565412394690579846723652399937232781211142526179891008682951553724387389755005743895471927682227235023334853840903533916387746738704141406538502921177733659605046504520225142583734306857076330844065770097596743331863803141628637774340771185808343127629284154460902136201899760125522615773916891242937659156761071011645654453576487956288378303976180160724315497840416000593792889413469533529377138071132666563411447910581908246844205085100855800941336842527662876738617956736573923883845391163971086103281139271960121079579249269134270177429998806157448457466813257321842095825888110462698861753924866600087862850058098708378582831770966093369673968629174320982588717854432640435069165720604054546006210408629759133030130061812104551454860513025889042557913891189573657506845551482955480566928443474546901499986581783044231193082873624631330231201839235445769167463326948077487588032726337143146272701333760159853911494891577765692619738976321875810972299573328214315133818463746691610912858440695900488922885267276664616828938157149540243161934129782400743345183198011077643852524978705178850463161004387108812860653763189735331118005269897101364117705790023016598506541450202481020144381727262497548875510827336785233505644580350967626709562936258052024197457547951140940065942653975123751357261383874785662378572991651954747611309610524388335809795285196546520010950638447888389816852715176670789683259402606382733428520644967667647717423217688834782272061610039621063044609409092111243961980573637699132187586253957091607291008037172019406560612803477094972335535036739226267042644128040113712480757146879654477599580028864179859352663628281250318856364755454132565727204723758556473852200425456128242473919429124454307580755676513212383616295719372480985068239629546775260072072535433493966317140078464516700100130700342316435574493421435331701008929343147793140084140390276182343595705738297285031303181261097680836998852427656892360561501867016372245293631956057328280859712121620049718517340280177891087597229173574062021493116818580825777040342618607198083677036956396888704129414269500467009556012037957779440923407309825112743765623269003733461840150416015473907684431710209778471540360479879199086234032982829848154287029767945498772671748490489654953736180219527157894317449820453718025829120468287666676991610776826403928451034555626070698809548947158762063419196418522772127167100576262751874766114363690895196870996419549733353082947450384586219315595215448638758570132932083380094510849487916928556234809975854453555736301124294112707358607210677944275083251061189686558931506177302909702147263451158211305095219897525203578810032686456715050914972307917884525071291612939569547218386969038801189031543382009182805267791114650356257154549568299903525488013975128164946062899891083721591532488823704402893738076096250002984528311021016237107548608211585829182475236878142817475365125191885598231394215233659858429535012669341514970672041348328475432064984176817814210182966088668417080468629061628526778971029889969592545501510024972931128784199190839937574625537510907967326228962242268202760262314401492931611011584871027677097943775737090440129055119487334723466376229582007408189518975445429987210757980763274887439445701288728682501652827694160948549419430879840601097192047078179024682862372986616422283123549385272049008758539015113276914405084363136134043012678030831605891568195796942167024914355551266071955702184031187433185944612342332269995471374572472371693497437148391975034944932555379240323978775170354944511122513092030425093740664273561919013371136561810013805148709372271168628704418127367431004582595460712467053103745531428175212462208725718925171896284430244138840119484177028958860552928391092902321645942188825976331634613628999975265921446366561218632832868216329786113532272573113770224792497208825664330871661919451962208943227920390694163406143509976133914803912410419989215239882902215387754787881438861604430310583955551371526009079301251616972412002061158647152047619573912683245137267692670325521863321899862381146990639816327004899314013685125528115758925755765829104429525741912530221243157429333010041960593380287132745194805260462893765933088021014833572374682455842669451678795572559837401409520677170632063718169029714840308370704158651127343880133150428935264662176129531445690347916723729841404989117229380129133510843979769403786617782024638748780849640755037522315660230479569183287117488012631589150625699836110922500929968532690159640624625060200397754280586026495860300759263996108401098712948566220321318808156704177324779027200680091459063410178242299892509615813908293683189149997809584304534786862030875986915022523668748978777914948246836518239507139675407720225595108132490790845076681353067712093115950638990080801273700210047894685767980934139395969796433403176797967404502314894012773115031525103304994405628286697566105547788895922926298326275541445832269305501932977192658492654655045400082980863712731355722186172987569114582128737473244528339829951803930098003147023099550414655375942065605436384592441020006392027023981693881231333736031842520510458554414172880306055579859174308045070826928287363639789238567121002540518105347178606470269161698188602007208969436527068805218884723756343118987816356112921786950882358955067217726611955190021467057939414386793876660327763432946039631300103615677116131100615445417801775131298700584396848979595311611365792922513183044695781022875931771392450545829994355893286866845306277274665438710469645181447860986570356058130673651647705838514279811404551729862391815909410863684701891637303721459432507270518637297006760519855099726870343472736932106270723873651938632755546251217867096768506028546994436714194524492183742350572589432849208201160289679501007743906871643255858832921686155452560067856678120101084962857463416281898459461013532693507500614388149404507468881458836057917617497000473444491427039199888815861956572223109404679155521063481709033959146319468228761913142992037704845254410237424542155202920618931954047603571863541615323721787166382425141289548107952866484011775447548876993503601447458408109522817739013491162735497628841991249397821154897873513470201643395228912784674735076234912539747887515804653882296041701727208151019775670962612761010818131050939885662240461344965300028036516337326898270946600441292637188187001681452469463982332039502188557793066933716372540235886097430210806052966801760398071516641091452650555228243263609782644633140596201946922738653431948268655677516011222068609213483082794529118509786600175264944348026446309769535279231356538556686173365844146967519389689666643792053438478585285521539786042814270882170594507724844150983394716963056053945381410095958085947603583941176420816921689689609491317936966697924206232762857911497746028486277759557856694058491898190391983076929314603533126965097977216440405594203711898445716911322477872261331336582026619267503149027461338241995844683756242075487588342061597230456604778061428383760704582528620527154598844723861828033779260494586031445962697626261373432742381830135389825997956049237718501054256034161283703046568499546461982227893475813068143977357391105875448255893790274133542771762504017921367377595904936312348227036826664240509097487838322844012356482962305165927987231832083442802884745367447035723525824374521749879245656023567756120948882741667719507867337264042303947717344846630921564369464065858472889000400032151739376729337840370580000492604751164378016977192133831636830330715859786108400396766907057339622710734597646045536414546411849314476520282579644726599390153378677933909482024073514708743768440592402296860506707162342547190622825928074053627495330784528260581457827290194803843545705563294060725115497710759821934351176621369166538011934257966763301534502061197766921532467059576174559378409163405293185430774855549531434122129065015144502187082162966105453584687312631740586709072165381730670063581337755022152099623045486431093298638758913082615231537616707853806179725902032385433911432155505455663734760194668743963990893380568191031155778278320291479339410172723343531781569056380077292876572374918878153276028053261343704177621442887501538995624693146704748447505115758079622854580124964617450405462120013542647021830725738632122548499926323503440924263630675480133474307936241723488716573388150210949154251899442077866404641467030742794097878780807944786378362906830533164129944611268177288712662459814028892089401506855638366610857156480054016033042630505051772680087663763005941056578895626742655936528228720385228857964367556817257692888396967581246831712778017264969119592861219701499500078753234786763274692183761517805689436264711865908312415143769361367747873458915296882405198163114026628123068616418181365981856201979122624267760898996804091394072781038894831002261247098630809697519980169165558955572814534989096532793415513403933166865276982074736800276161178118647847585366598740182171698265789608018999713892554080628969272373403952620577030313756485197102886588972868800106755134225607541883873978857003754029692174063676507341893132288076324631475902540368134269764182926460579359362633276071380064823049783533253921225315666116452992350779850301231864380329957137967922730982390265860819179220762399655304883345330697532155940836903483052386519016202879391916568115925025115609886744344698622702755872376714401431463956135234512472376617084584242506307833260289054518314424893288285681209108263025243180628895687344208081330011048095229040031607407796220915063403914659606219309041682406285297436967816028325925282434078898152476405919164501365239055081022477606404165616680868316642099554628888846990506155448356626619442169527888973435498472478709477504509132283676880978599533404767358482211710140749481279480024536588680344269997386981071867907649310245186403062200497468832920927966029177008448073414131410382349495653850561796283616253419629213510723467930738375577620748194500375767682767951571538014716869029975865320020272544790195409767254755655610755924140527356361917955113681989794725333942158801207729864497485327571103486699305130939283224154933022483510860069801976421317265801538195701024392600933249596071752889010709771699104725707337413027416003470467347626120130586175344317253709398882625178570439706805899583625447314886275446404854705182891751740090093257147151748430823449368103373183931100942871721912171992904162944907958715531070511253287455886227183960378766835654111945186234992461132932518628740372506103490730294393916978554712607898229086842980389349560361612449688999215207015896926635580287371421804979234886534388912312168949926295351257324166424449504851064497987823308972367059815676350384697042661458531259730536718587747898984942175287308755919212607881818603943248767624459839701062713074688853261888110422164041460414061378198693111795549419401722695782007729677525012925852735080654253494569412525222723257501959454800447093189940697113677649710044058417448150922580094082668616353841041601883506441800621753833907206313910857583908981162523324847981317677976150708030212521965091719852057216829581442077651341177576755849412523053386963801133546826638467965264627096355690782513292466540277366239483641176093039972720081356133932613629471628448026161253322760587469570442407798196684262233365165006398537578945486897730227509239879943946486283027775755666569811120629886509992974602286576986009552014315399756196190751349424711486411300235018354825862597738298167341709381716236318620701716166325317220407615392035938557507884167416019725526144740750799597506229014747489983882615408911009658210900213105895427211349510006519966032280184146820642547215214091680414591859486880948891319770179516797259276385648128600402613959101771461465094516162871611976364766751437087704349590701806287420358558277805516698774175627075920173993846560652015657721555982059184401910607161353512763885118766292768767667449428689845801507267529175165422027022835448759665528166048459094695328795575964380412165067489654823468244865393676456826125592903351456705405122345490147840592235813025011283437082845431841962904932929408825496614286079384029600438485097675685511293081045467925649567948419792290885501177720510221787304360457092182224520286444618833981315247679799553374632514445627304645654798783040409568250369125099904977089137752474354061128005055639328809596022896735946392604318060822903618583226814553525411169526860564780260964916809649027737353988856118589995209692760150475289374502532172228827118032037196549937229306358720054796457965905972491924372073137945577775670330288104863991189064409993170626468061497409680762831861309710512887696753862000545143326653475462608103454551878071499919241470855600242874537191113045362023927719334702113903458777097927458109956826858802365057043078777434044589073123569432695275826090180726693478781578695416367868504959392532606381023134207893435778759120409180992094474206361701057998066842654273977976945280728427755526443203240324509375322184297902321315911387930193848905450245884119996768822419275565368205809660951919489765995081339672144229153956538268522957374234008256960369684798520118228515499181306042294647037215097946178017738900783270197683258066546483830116426149822301870516195448680749988152772277663209868992860405662383925803478545278237175348055577849675235561716102395873088059575864032128807648127069519531711609508947821882750418500697101091821587709131984120263475937431421148426496734038406900338881457571068622605391304200407787766960195382591850683862523365462265510326013014443578693126798452190647895720644480679229744809030971481927446464054577086548487865192841935532705913186627466794863560155761847965334685187686750495109678450589555752014619803788703404718998129265454608392694624560957239672573214991582003336197428803747140195862717053959363271004164985803416968559790106695938835897622718552105364481243655272766660399359839605758356161063344000110118074126606451241037368150260775642376783788205914877697534439223870135005606675061487743626067489986141975323300964055246736627512230271594958949824639777301345773971997601030647621399181320386639748485382889285076370494709187593792817418200166283306492639224001168978035374990008314319049881738383261980446797519290446754412155312406635848237635730644313424669859334994213475543439515064992083631325198948749825023313483292448318489289322248900505883204357906810117554940549239598493692768927193582506663244462994293418806458819257977990917719720990044503199346518851031748182668562388089542535187442244491567437183323673656751070134033786421733960698401037534159485076343906851581859556749691623926836044244825732572810566298167413310513161106831061382049105923501048801595216151248158491835772344389172249372203803897300930907915765717884162469843060109784435062770448850429268947076984179350116246141749655068473770346655641201955049665688960961358654150608094934368633389580290837427842429826953872687874831334804405646400254851048666689361374036391782857679370196550056342034340803211866146757705936624483915060405451716892081734955974825690121494837294997056005667856313991556137469057636920398136442255034569520278297257775453117337134550414731910124483972432465797457094536961978092432160517143249528895161911241029217623713326507804752920723069431061089702157764466430733685135573465471988440169671349909287943340429329689075686397980338582640013371697715978307957553303745194790745199425180162642561175944274937353513284308701038065363657599271465492815466279782486550104748941893516420626407422617038215991047382293590853313726580033809034012833638314916455320521182859264473809357062653436416092309613241308896665764627459562498856712574505396878725798620187477683945114768887062651928848166453705955993834393403725538316701275685095449182589362452167598037432309156439276338916260106677116633645967796033286816523351665666140098920533947631241852333471355291535337719214693837246912729969921683670402984452238195358642586234667904836745432281909230358446031220871877198952124326486766346630041152791592115349064240432154594151714079866707785239683606499788649559904070895561153093910895005665143542470655701804858389811512824145351644222567353261189801353747040227300571910799059165352128884011822864049737583528032304982519050436679431601816453743535688701660030525403323982518161723048462869937103112915629656643693070712967061026207043829193053213604577419482172797417785830084895556095864925470032226162955186631142611666508613462208718721138971065518785485154357776352608070204008420243349322532108541273062343063859469451678410078591857986268096866395241523835960657557993219774507308595811443799892262237029938842208021380712117178909762465358509362346971657609592244315453702018775050220306464056322706626075328610471442085872130006434931636835473211203005184489622549114480436417955585852352914944146730289827809698276322508629625047800166550637074492001165737953990732172170881324224409413293422086536103424185642125339915440186680050016545377678762634473074937464202311923174561041146416561041356637329067209855097831165752696970199570818470843581423880838257211585866055502994869109490126489886325558208050010892031047189742143077395609767673317590045683200341210987266382931863137922815546418229179075961105865984338002276550927532730705579784198975777497987797967244198498611127385558652945809473435258122814200804205112377050229548453225564091242577872705505921473872686067675915610192246278887993029746086309212592079419111926965006926677610344949749553230975647139843084995930722304510164137864200188396875939910339206674729159226648702418823444539179289485440599022281050989296515905746495150696282464430659948850146406378078165272740711032150161571730388278450618583056008949927750547510934121219305062196704419955875763433889210861575249302373972640073015991930636762193079050015152982080811528035314880199736572191411560812620493382141606443249680148928648910771445992971989219259598217704726298282810379440768533117608340599578711218985139441796677917128836144875941838121847288034602142497825654472285686647076185388475837157418318827741396797383519648025486011026096208820304504949435222672093286910540011549395766947152426005965901592809595131450482519702578560908919545692439304024056246176702073090454598582451590142460473676660016710117134996912413663283538073439813966192819006629254870461992309969526050863389582453868282287452415784116882694627568874305712891215295102823757587509601856289937893394440517829434519962073243148200652257752998659774742232402217619582353846559566016102632095506178013186858197517065624717700987874526466823868395286443219808281979230126580391583842645443038048692152674123754902916816734523722119508272897915230191493589134189065117694833076322985759817866019977546905590056690228770936223015035133180310688751255595503353981547522048173938835937644500726718816531563732839857500045485751236941323749676565156849396977407694519975028990848151408688484037236289819113382226157000877859418087899833808571645865605663025893155072652952722910670581308157502787032901290015149022167542042125854858748875496033407742408396762886083275946550320834923267228627483871932471697312114328334039642180698092043237801095052352713345553052980560404259181364678949824685504014533231517069013224914603590070560107831470084939160307434595623009320523411899302118554199305555041055115186585962607555576171237484284872434398801100735614280609382803880222382943813049158421376817617111999076614899327083235870924459126909001289023994896942153653079121182484133856111982910928134381982218697511575756627791224828612270648390649080626750737494947894684632303108106926318374059683325808201198437443604933427321870754574944075403727530840511808834114406354324727280746386781384210632788829164339697057259832415621464006787909682938488240652311304097716606236034125489023029243857161498973875380734757881002098682738583506661196888692053727090008082388551293114166655347744789323002017176346263868673013334049321745698833797619156737885298657342327845070646192721064033091162561483910804285983231904973942741146537094587720936327862703321565025708163131984375891113632371918130623161678956833676419779386526209064889630612408242614022514316789509235731517647857346095453502785729003880344110639868240217113979878690259305720949840241198045149166945222074697196802656499025676974544498104061427321914350371921374276070132151619161503372496343305197195656302483828188594717817312586106919361433720170522862308015012574847008486475532669795736109160453609639277960316661606975499537548471542707282711607229151567790029140296186187105528421012674018202701000414807219191028374851833449299703092755858509115738374013100527895294668670757205306862816656824653448616982701285201266946328261883187251516127664282707256245861890076045552738593954760887833300918750143168883792775390696636481989102698535953286722923928222888035609704352217105838441027678533923043823098274809926009539588239233395421138482138542775437007776911383825647841102441255720946862579845708823204416349567735656745316842332893974804664834428590781261679692097142408349476976959851724692942329037554413647038803394399829357948346212807818955729619208333325926811770222420459811084453437961510734877830470904344714178041216792753777358545817427306786223061695877961619978352731405861675834252790248701066913285357947482811378933566493886999114923251490339644544875332601517828247284569013686923822181249330732448237626507017699158832005875662760094856866994800275065687708133112568747035694542147910029793256072923873028063786654285298304874027960482947588636320786560055916038866197262441143740995987567183671496382333678571668901179093615389370923987515259164181457780036033707473562127231327586160704576541911809034224724708435585034117637723317975549879779262844736637691671119576124872342659153127174075399889883498610189227523740485052304217064693763640265648267184216180065199279939181657333621104838683004737042315065841101431758207755526204085434328745473575685608674417154431909741522200679428803625658993235999022287882747808596126875272177873564856502290023189872598958760066544918850157052073094026042494056376968574809164277267488741905407669392020031552106971291376606490329031752370588635753315269153157726388916747178732227575205809573764820452800524689661327928657182230456006955635858566120285044062573123302536931540231524466345817120518064607532139644885475615502946633580172504646790781042419308615606092397055030378155570151618857022156840399425481563279305074101799772582935681791828785987813383781943274176920616911034404823370926396577890098708659658673711212168494041281916153635928949897204928679520527588254166535308300724645119182149984814551122114999663944520132819746620783225451090598724553624154405870208297086430587930086525833841055212501977047268967764237331526586104746218047559992490901925135574568410107299338940726268957780837269185010216812044547881412949710612084938172921455735298168978132264338368531729677531021710940191573832949880370572684306422737051673027022392908082554446022868335464453094684879436283347414249340808612351466149076655434342868564916216052959043638509203709133059386953989565009123843328926207960624523190937320379466363785234559978176378139842473356140676696776206039603914100318483757163535686850882512952267094255739718078050087790208847332007557956495216120968192524057649199970626069726182622627799672856661925487383979776156465950583979777565666368707311136823008651848407940457325468698846940219699343779595163739538270803823302074106328023897630184232807064576727071112700623840381035504486614242589137925053722782158515302260586306701419368968008545840304378626748398877264165136002235305499076978262337091930213602765901762669559554699027622949750565628334070657784542777205315527891613451799157748719511312192112510449294621422729345872878700099488838974302118764073119491625316416880607902736004936356944377707317876352605176494825323115626871493488179140899657046472940600623505812596097964345064654462682973657484470760579609324539203704051407802381273786408422276642704522868966236601159206549406318083548540588587211818832642111642942547910689801383418510383828072612099606369432601391427324551513017408914388235847053446867228794415951034615532935113473929254554617968945080558277495965382102150049277893394614314632735759616227480291606066458055784361921560866373042518172734523663629900199832327632180027751614343839845151758577335799299142057308567819300704861887577048489969362064925090518281333297402185949776826905278668590211291397437096343363350579653092048192629858245714131883942273278414983484805889975196048113001037468253030893204429849636475225459578043590990003039865921872751506406758395851998829146446299312929763917564705138064100952661249685542637775636551686897681923358160452981152486454711907627395120658721241547605166741487134851985738921824557293572612788708513360262930966074550676624310043253497197019547962103307823515585960215072715828656574474956062494194251651877913917413052447408395451510323169599402934870597615091271286714253932587966325728371687044791333027918370332838288215417471680227006617573302790385094633678829977966225396447466760318314114173366219830993837849992437881728054329156838301716272071853021705906084101937644022997669921509887720838871239468668359204397771538692302909525542312659741219678920997415235505448843954026681887131002507829140668861616905664606585585231504172748302964525554719881690334279945337204457747372339515336083069861966349539237804484908533253568082073429345917788977399387950510947179212921471699125925491009616276874582406996299791945139247540315613149792089938218890365522155196579246845124140044310144414207320248705370977251573832876570332926086800911146198405855799390987946049221349563782526063555100491590824008717397142525357018089778154845880517890561736194442335231425650799591646420756972596529538540071570695752008856705277805134976677924852313262776873063926932941713399844853471749952370068367444699590945973634317023948010956118318526840066809649992731432369598859066062631153459472560263490244382197652216626956518402471567530118976678914875810112457041380445596094270007390290072268327110366622038963440371527205964256684035347202455107716890413964491822832533163072200688950560471880701422128571820897413453051930150534527961972752334143416816400345976433028284540679850176907988096845172961002745664182863417525855255170788749259584439846695485037931105414690345872674856587513861575480636057309236199527878359894237111461288559509679288829262532946693896831928800878276267736459851323184349526045143930900384237768752873744781425181473279870020028193416470154228758761368483879525382382581191269204056613639015745616387936466679466026808046067539195015845767926281056831936773069443889688274150557378176241496887872271825070771804676152850246751811616545373473865701669243469250634733311343396604517514069987053440411780968679795668696338303940511771737539842678960991479535114438843620893100542489894219426249194556979860692247919719659541462320561384381163910550888527340162942284304163859203005679997535825774732053683866011914043505178748714032375639843019155451919569517105353247871219493325706385018087511118163580795216717975735942387489272108596147919233471768307976058486201603048110339471844823382792925495748897169285885703252248248247878843196927846955642896805257780821025939104957707414532249044296291318294287124239191603496152530974502918762292767837753973737083169235676436057689246509307624751501379186477389337085869016052134128422248410996007483660516827747392879969422079826460858629864663477642954690806715852861508516664859044359649655840290020021717499724886961145656265471262360365831422800764303899393797837220969040821592024121105281020776017946295543760645049664159594976859143625214001856766972539197976382130442750902436451791345456972270147796807298506786833352099773869293078231859146908425229422178926106046918577244045699010501724404784825949069974770022918069703170535618743813930255546554769836470658000042144352351043520984437309141458464721067865679891741757850494037246972904530571658470275534487424366141682936752621070499713092336731164745035744590613575723134183463517014460911309582756114168521385697150806909351684803400362829323822374735276681206583522330997950336183189435301927827652759479875886033035038278869509479088263292685519952698905638374919229575419003223731712188676190364466604616622838703444075821161164930425892354570080611735425924291559903441051266926346433150570013136657746940549724162351998756711564207613653617601629595168281755554313063329976391298553481244410494238622303118499712968551938225040039406311733143864635229361191618106245516724342997886786022998949452943191796816870228043744548315846603856623311323458253395139738081868596067326212657413013413176424680045069391966044739290460346686638406387320906011195627187096621383536663084175158449815358499289627290032699470784290342445459045720974374986831087158517528332718240698565298716916082225156464980467001092654774975129727241919424995932910565746151623960097273963294153237181265151644626069141890973907362495612276455010140848298279619434756774616264404042287716038497106846233931219083618656367793586327459722572851666231791976780597934280540575451182565428982848482301773912098468118118029113047074205952987598310900601440054980758348864930494881164290039640273056923610333299137140052324619081664678548022037524813432645003573004831567960717607175786610671076573259171911232538595099992966760744662074920680875793875970935870855433849172087415604704268459291209510215124323116328546581820471700405484500692703028144719817961031245277777940191121557560912366482859574593947527904391994918169773935143020952846172446038479367785856016596041676381932866214281674964880724915250821307167004183313684529033096185868107974999916632998132949191350692188564355220923123660409009204138761456198696964936936081179430319783825104021851262043404866256920756120144355141009857142381674132963782761265270829033292214872779199534543845280378929127044040578311761009699570726099739664188059958635814301788738629763817870824409073139534843107202340270737345184847740633954186741486400530143030382962031042598085877583662640044247870145931736940511585128646732450873473557256322889074643426325497114789361690130766823904628819632423256671482289539014455356971614365660063711769708409040647938320571028409580496340642412555507828655115320029428639373648268771035394539362228141365306212403253885411410146150400640019455433932066531380089311901699392133965202847538343651398135928441478579371843037221426825763895356435738446174470161133613907982559489889492644884091019216563500697960979177495785953481071735916522784384190595766742902969285904671447751258561481233812593946139346158872258968107681291496568193647647170634590896991221071565055323486170066287558128583205424924904600698851744759977713100450524071081733974668590743138645180664619321396351682739614674638638139292638692521192600069650196792647646542457535762222494446968683861642275690388275893489279975767660846483738078058562054988204058605052938819409395445488158224623312749497128787466891181007870165187805452174504189120673433506791205329271613710876317253813082192647757717524126904196861708247270661607701773878403270486128435957114339252754640012962122155646287306244371565383170463781958654138519948448664901044852618084398024087741111905575762840097553597784284209656892111636196281483754008438544530502110601318320690494547109058592300662559081636699879223538224291759653910910384623113524424312439441354193751004034228185654285258125798144989636610264883932824852857573430071947318788692761433304868513199950335749118310291553217134251595457470864172489051278532520989495760079348083808189716551642109338379360021884324535048076841501739721755243972347121598641584856096662330831506563645682995184361747349136257219026418090429145112604039380683760593798789227540732482459000260790273019164736797110036031045671645532040545255499181714925845249759977955539684759947067958568536818662427349215099907483143687516207606720479524980765369989179330236293967100781393706325098504117223299180649466691495973835995005305988193732828165639259976287618113922213389886285167891051239635401685852342391262639547903333832548272225169040570468550567684383656876496746567185958504829857700302632896840439252505275903812534029465229892037016399445740168322879492836044926388436637319883223359067585339568146491349557743148828265241428606164493786998871324929183419087559517518031285456095118665217211360168563600312979101328272630090267597842786258127958523205904811121645510397405027221704294224070283428802157842305439037041035073531108089615136656762811407170718399358228808932272847784507378047334819796406775760037469142434834605551799783624815244690057620272272336512885227810129323364435121768830698015816482639692651089274620838519143336589593771723123418081961249028492822121067655735924370770630734250671553866612284295638636946688427714032470896334580221721173662297337486079740930346043282874739133097545671218608257913345263722510287884524561145249126766292344210598384684573786984795552480862371286588888832762372033653991917127442261505184039566947134537012427705934106937745543372091170505929476718265593867408516388794060678734783726633147379814430141119431105008942354803329518387643595260049633228091984564264794924171889300087863325875277327866447815119201701945796664966833214956877227820422130781677228288501698854256165655209950475028677259027496614071225280322402354748377611430260296609663969346895900413777117866613967315563958329600540559027343706576305987098345517437663473546175302841994876362685921729145568708303624349161855215908991163738961889921196404836138403262928031497771196648560695602582073623170552918647838653058589780944883595396400762511991550453929214286925852518712053817688534919019322606832963147455289241088389345126806855498326508832323437689604602381063206975351394919288191681710133648703945965172843655877013508535711863913004612977213858950113973130385675388362771669084681386480619953477212775976714521032493608760591956147950370183082364730454425333810795911082955220561027165949516876296237049116935535573403427665745440149723838633398978768209436283405006515166857151636709347856634424050627951438762354069534112835697009254341999686663655914778105827747373481432646227137646498173318982103939904318699443235038380744556974712556531031482485071905655278588785053579493078870268031573155617988941307455613660004634630087616334790481703232093782635727691482227545744982316400388490602800839856160376747031662608392536790598343873835713527413644563358807068009612843696146365596687916930117224905033931101789445593419687630884933079385923941781705821941193099279217230943734960230253543791632282128597026607914441906515476409400213612102936152592130658302762912552104497172181453122396868868200402411409966223313271202206326811295254452118193788125203029610726428795011744108435089083631957586728782734597337710684755137618599439288772179209902388727105581623270038856396699070938955618309098008326312838614975039099423019654979267006493950955030961677879801788446885535746935183490637574700242864403867916755319165653539899644156362777501073592264189271461535215584232317896394885581803321324951514853121373858517252559626602748935003389917431166207701471162593341083615588557588230343765476780267959505094714890256957354448360191240147109997482276620102544650061550802333776030105978605927923246030534207890989070886677572745269788722296248450503365050141602887366541627786927850530425401298371551498783164401971618883274721252082423112978900716726702400146835021996554436468041926379682979023638654887039969626683442038405763939850388572846554634344887206423141151461199721705684596472359373379856494510586998947372936251761515134704204660355343156891747179328890138829933427450095516077996500265769890150349350415864704861415138374663291266221463790173636956230235728762251044933408281059476293162545914859355837106571501180984124717857176482351188095856549790860884870441622425331114174689256324829408739933105078876275069177985986185596220639814586583482623970818419830513228372109791939700058306948082790597101845180969160943831796629031483787033677338409521234241026915619726277861786824939629582835058470413199709668238385589123733660235251147789535911224011436095649896429247426036238435840566301029778058605129297008472453368009315217466036533184798657867457820680641805391319071116132910914145215170974544795996915344878547688470206266019971281426911068995479197367919565966472472644363317650954189456862011645846119944324473620273901070181916074052057454135173184176396731367629474190208013380136481355788813403473811735376725004704666831376259762720295255804183594174340967650114459858553522437407056031153417561863394843278615336716359046864746750351482205640887989428636190866823503258652372358923789184016526695884531800720892874628189712343908751684330580976415890301767849268333787299370393183924868051217964859856411104823675703878191301404756821441636798080425593211306186253385480920803338832387537837224699870481610567506709889135738633330973985648752655804449216364620821964935372017354113671194567894521398830482218348183210087218304827596267943861301608613650011128881691296318567921489753240866977491052575051843643239091442879163475260115452172776393604536481874170780906241816501513089381619542023591452517003848815854110444861997857636689203022861348518773194026759925617219813625128947093106740620998941874689146265786157984607321984252309872118455104162080263078144311995823710300092587750356341233341401644583255201005686620996632663827495936238526567625394200945096712734180829570583950633775627784580256282158634882367566485465177097350092466282203254505631525798903945155659881627784374513143574596085219454507556560025927393410267420399398164828971668655762736951981152678526574810562690959912995974746465184413753087385998450827258649177556740588728870614731356629584394090283076217071002654302993898503022033121512097807857992543109973229649472076138517484180605022104305070532694675097529829340912447507639673008657946930021531410852396233498929123362513226920787728481203100406800971178986569286030693154627646631831778672253978771388419017499364986192148969169718563813917633500209645545203667189638329980707889209134234709452618120083228860939997138537114969968322150525964619595536377101597422974665007902813688519372260701092788596643169244742725166483610007827527548121902311800242381680137086687202040947094435674943926221539805476639665848254991300697542800575817805429307948102655539516145303510490427224149416207690638260352147835887739467664885792189852076066025331185955087174418079783304112770650697068714486472979751499550002543021085972059397914829625546279839563499423645310671632572472130693707543495378101093535936389309255410118945165252519735742017829982396841423179868980465390056045037873115275724721546075323700305580399497191359442125784260626920612292784928801073927911859875120945098267310449638823567303846512700466493980521403285369220882098337162910283541496064159832725372068458213795715179292531229696354156161422258185089774130908514358935410612787865957246221253602517325040107525073288032894173791707203307819253077874780872369980429206469871037522722259005072490627285436937443915900218130803005198631479236255153307034242831649861551626973556803409368876797531772519873326159432281157468850192008714350100711770224459867337118661492830452851771792758939023762302863462424227376059208148571752480564725669009606548821429626272628449817320830171801124355026818340329714486269466592768852227792812907911439671866006352756444502706175021103450305377631710205100292606710762069473648975865228674563380281543931831977180334409100189532523944657760973993963326542194365047564633014621575949748928120414513504960185709739507260558050899444688091151573721976524035993951555848404781029239706810307822243111337546743064517444338128134737714266634368722623456714736798506153195933758623915157092283491082141091327097710536845887803975254845160843476622268270974084510977727811270564025637647417639643810339290423369237958521429075642916402413025689044712715125380495461595546227431680828523856352516240490697700066109113731214048510446052931062179544924679767463438909065259295342716827955893366509613556636094880106025507480148788472493419152930051979984229973742095027254063084998243078747709607447456959298212612978546780712904572398801783726126913274279962696908817456819877989631668352266788825497002040052462336818171443013159075887518270971787731485584402519522020999218640437554950079998719364169320633763077984168891073598046087591104200663952646298868206341114367839255923913571757788642283034076847886571901091741024339434062161214330320330954859829701352918940853972089760960191053169631585474956325069075800288809789527782142348097343774711705311091000785132317496190364716961137280745246928390663716942260130110486122184954905820692796782518333326396772173412802623523447802488080076177364729078225032086431097633785338785354910997580153941431968339760212415053994708800906254979248715917572895591680143432119879060579481507525052087083913925428716394609411171025110838388655586447960409681635892481110249295590187939201366974927161666782008982099627272791441261685777526754297263163646998436375316976334660688257778795217851175847546378214585732946389390069084988322764572938864911578269301288511621449817583570562395811617101264030072588902867953893915449998493363043234314927503072605504155799421750474729366586621577044913229143901074981777765529129082184616306381478039799894043244117110461916156250254170943320045073725192575085617312461499868294413002729718251870188448339629549417296526668875461062105515215122472335756593277165369178228898019030785190777254029999537610677278313254752764688762034560833436193703375070900444472667157781831473932141062140513258950312007412056316909435350650514379284623059734457239001675615460556652269977349083750922615253843168639976679438953349470220856419465740574387556800905823617040141320439065185306116718668341025813944288362965482957894123198655508490305131219596334836391826019732014100355047938256643404542053620696098151306495466406688839993275408806933696623569619995162217565942229277312431482391337912408068750036898893403297812942835105101226302388078792679044119169770822345857019449456985147304212015459020838989732901006355483811879486438679768084059057176497461058220272785533178724626534184253529413392720794593768979209677851828606784300457391079052138817130722708603992889197721272282220717068978767889978474526807876861855552138735443833658731538059848929592328448104399442944553624829009489190797008929433136258817566615529728276248883960536651205437945205820077086987403769058667068181796084039736959220895641382859054650365970744388640292907770403707590056717987495939990220406678857463053216801224922991740371239704748540548415604336892738927602788195949781795440186987829815648979113990066228434049242050138424921026160991476990938835645403464946271368347083344697268189259041311879166205294615019785763290431007021361940854344100679271289252586244762012339388812721495728101406402403676441765786999183921046801152952679079242535894726644472957868230617308248541183090109443527570065357009920890463263391582187316173589772336001032535097352879181764442782189489672633067510402917514684484356010568512338389390522170164389859330236301121849266540121490181143228186570332906848985666228572863562773330071527277723368822342691297674704665299836985660166822141433315611366427883959381341035992842493958078840358148825025880851891788352984122397353859110461908470700437802331829782340150787886443957656142073383422417360821360377693741683384059773951376843642971382492879847784359916568155159114289336412428340124471610872309350379995134634095762737988399457316505284493090101991546212713508702602382283795477081688838692312572853742899261784454413307106155399904195075580709653782049242508626379425067925396109209509777016678289954258012128072132101123077642559937976421676578775436144607627610730337968196896784421278699015771103885386909434846899660777742487417254112728174066635871764959313602634083269154412879043738011043179155768298486940011102262638792358049512238249473903149646041202797891638714372166745925548999105720198384959002326930217066493840791279263787734420439035268691491071372137180529599502883447571427896053277425081724421422489718020143942467469591017687011682608893635264118223705663999679972785892871854076912139236543147204852261732716654675623332943578983439302818097621970808427592612956216732393784734168949698164617538671596613369622003230982372940458918946186157570416015600260560240974757512268758642250854840825715482122066786174248461147814292849658112820894584110932365343588665521949060348573094244551776838126959393530563522602804994786633563698412431943566680927598129201800488306275644802645794639923221172097751199805119453198426355238098656936232650947647068169700082111455590044430585701692117510149289825286054873706583119752502989070212352591489385727761132433737972885463731906043395851244724511189891599562823573996990686700398732572387942696124155714099355964077061453264687234475487075361824567334599585249619350862404956947026983823379696193037601687953852462617831857628432376868949009160478005268648982920757084891728759887980409177982637846404567457689687385030100413856226590610895783787188761470185341336014930849031195982144199131738502410916206915931271123942459262258484627956427780053724146954577399472961482972592244357774048653314866254730765837953228061142914496095253237125086524610104131734708409519705947618221643131209292440180655249100066512088788873082132498151118345509358583446941172348887141712606377938244400230889321293960634686587965228531517509399643770218485604449828982136659045850280090064758080202362182045843132667614752518578154255857213181890878882842351468250184769984710551553935650393854259220422788392734772617365858991576778747815726877943121700396210706549344124404375358382174766194915684669336476953516934413617939386391078827905485522410870459718142211500709392604624788129031970840391601832139557822090987218660498481022069588162813348243617391338202016170619557732939137723055304324055702940482969928882543411113434096163737759993642993074130191692448220239329718943342262934771736182911383420870114005778245136587974330985360531043582305835930660505201931782130475355827495756012693713702302210813513148656438090072968664781042695329246240770790051712053887682991145284514773885491570517953434909907241489817114978358521626990546197275983170181407902474776475583678213456059701580791905490427040310691329583025014526001945360000812001030537454618053469268502234869701813729795497147165469263068968982004326155788745067110322162069557235170456361042024200253844117084246632464570893483731222335987717170532054261633144630036709980308471377549373707773243150175874395491466591705142484704823195163891408680538886282364146141372865214584334191999232880552763504359947750297520241483748085712610953591721180830968599188417603292401810298749485307672111523358969540987037592450371297548956768800099074273681816554430349674510749423885901181771225878400850355350719849600882809769504585279753484098930481046020557536244081008662397119083560812600859096794600182512266996930701130038042613244330046463170631661076525816379160873445519275535369062728810936548831879588893057071430173509058772786311481464204400965415853745266016181216579568341147150767316111764894757052948632654600607787486313701926529951745371940909616649947607885360966811572571017033823917577805675409339736170493524710704789539624254301416110515505854904791379891444991983608443564926582252367120420583469557303283003735661643137518726381060746383682118155877060851914124493704469020510867865960381318918393902722304482621984204003087059625400320250052053901495616462806516321162425477901533873586818565777912835061107860337321390687922016283724793675637189473582841151809328993205588870073097935489736713767835424893605094824044896617381099169649878933680670661201280961995774783919173643627700166155835005241513850816746799658942842296545189382108622662307899720427767776231572496742896881949113931573435136946896123682217651814141622939316875674334764471626108952766618944093060276671815203035225876909318797664767366974603184495632568452700841593883701131487641494627444401560589577281434879235125507587246200167555816967998099671276248619186726022723305909952025898664456996391436428340457680765841181663045858321090401773806046536287518743484377011034331036617634614692980075478641307832801088346440615369224624060450007909285528807880629105808016594211852888667341497942377106717570457466337647737558101064750313455641942295068280542453159899688036079171553528007834388303387790394356556901643895943148411032128538714001804392879807794176925678371618589532322110515936337128655684593022036828292537913309161018504985940092404818659092434544338342513261020670777067298385567883328034837000935856609677682449185853930940909408684442732868127795620588727953755439155406176653262335239276455437017778173261531056457886370818249082760497194474220347004510358365125821926583789621683081519776373681791578534454486573361709191698355771523121832260176011348531873596603319436208088283886262737535446845929128723122283313052161311984659358862006907356848864580639355512070802296319503500195048999959549484565747266404572939998992341725818028012354539754993135826664074658832543731835342485227692676586380470913450066574497061932349846692889182865768586567342895723591321106838848182820918803149124557792581737903967276629983472727160881508335695004966633658472241461750858623513230989440511713230158832516587599613707170200396884671155165813891199175274484156752650973521172330012721632306488514430341770155620240223511501151164524998585590110938084474007988385838117194317859943298940601912243147656728218745676312472024619659592496495810053633010349931070804231624077840016022827305858805427373663325519999134173187541068193344400107535061318037642865810251844017619046931475792836572573160836460118912268343680341188581676174689963271384855370766723365848847477964480417583963194986753542860807695705256156193885377882291087154620860505018841859896289877312857120518467281999093114788775061573846024107058616970935722665968784096104913833281762016676509111724355750750985095417361208136102734695051168126267142642960227454356069256056837515788528759520254873766598705920181794690141476666442037845749474669330349698928460080357875301128468639428530502100818079663363520081395239103380896894297021425835880147851575354158529101231438086040878648521940829151428217217997117835396484666852615410869216655865654992765834197907497919097841701210862760353016726612319131318339949822993042457979371329596256993357334806964012896017098446532354313724980020392047425964221788188625726288803591902591542447287178197786047108969553529610043314073708337422068221926360787451375045167911140785014749049258079269922833035873363120165256093317254124115808238223575741334511766063940380140454476166540571039745067146044772056956574952168702634214837281667667097394741233120123323350788043119494707682629353754116975646326120737872655667008874070383957723813170267665028215393000923138568795954724984044847395003031091839191327668525491600632642269661438415941159089432228466332042538472025368749504194497374754871461820793828165629529948900409024806177123898648035947968792683780702944118617453041842594083982365571489058549873095407298949204278189635868841535636550865586513545103017636869240192254734892197291115697921480157900992259193782486469528744305344151975640538992751736617365648389911025807387244480751124043897939076084335364001076022959963287958893097053656674411050337755706170713698480083591770507336174244928329008004296461233471129922381383996906656893829563882079748223934360256783503399494851699850825387715114178828561712383426964119868441032219880045490825463986011419959004417777342596958477038551855092025440327928910747786215336595857388908285127777195407890989405741648819803950216532772545637418689562701390237606046924462970407987692098227268265760219832396272209492518391970701913979617460128704166237382621084050089399257238218016908106593995006547812292912761104030627220960872199892635606570437502844129510259930106705275873014349026883059070118862964656143386650120330108059600625237392838142472327714861920808359557886397347846339520905454747680033171622239857685464070819633769146748605979603530752938203604726964908588545109261224055547328636119722215542468352824964685018944879554046055920650635639705704094523722254394393398366351073973947953554099314987666364930734524803887438684559197922834064196949845592525725626475299781456909019422867391619676459123821719077619632534518753047396789670161226224715022011812303859541990397901814507807412970010931062895663096922341595519283867195783936076161539928544381459080377116724298150714741698122645083455059853963239525099832626733710036334391102199995644273146949314495603494603811721359843963302664463359387769096742234985122609263809043124178952726372556205832618459116828084684962549979528516946193338667616752580573489781793641448439636421003393875323849936788969239449562518171263323640625439359736382774509082596768099636996081945272236770059383684834478008253724509153540949124808554858182924749749534698257608701898688717657457523999144429940541219006225431171349663228934741382813169922723362601832817990848066069419419253864313233168020145174783194194317357536120990999640733634685227166941947416053781023151800339677075953088042197088320476639107248513132940173649194184754162362827147556609228367447839182132125191221085013095462458252989370832925643475776297275294096875618349850376216841071572257354799086607777765941700811209882513101338908261854587561069567272206428631694172642933340032743506273385007018679078625795312121499452275810972726597920717571455248589423836835302799521576039739052649101364008709773927229950296164637850299622251194270287270263673843459812419288164325720479698865332826704029485587784056133394473528481635277528598995896591182584766881404705883022219035699337152147666439436902394625876678452975422291370250066088935769006359840533470479095105458689517454023251165895204135586585989133696165186334852937583073909923397793515382265384635980139971900347584360639568259571232433343354424818398494788479304070379005784975747906028766577150682076498233551699167195021371995941261589943726252366294892996852532602230891425384616336818183514910745856475469702333936525335266400928261322245781765642308181292417637710097912059337941734407915333400497416978670014983701780189098280647759835892805659887224331008765480084482065228521337727974858122574262496653723422015850981405237946832625633264430416788639813920459012253208712083824837387966991099282726769112485996833400867517313347539826876602967211922737737278397515034745001828040076277816565561517388791354274729489792950328526778467173278958923827279812247738980895732851989296821560331936622242446202548151788823187737145884431009202704491359533819204572184958596574961971251189386258686020928084763438832127969759359739517665546686903563508271542751964998331178072854890247770464966154169237473190014740795654048439696903902644498382707038817300075276588113031616480054632742279376571277045963465540450564797313100026823765838656942482510923669180220691911485566117033660083424043094111042574116010869977305981937915701606243005935052561279225262194855747409511740892217773265980507739886413336934829942097018967624784301753232523398336182708080168371999676601092228574385596030792253614636633981053179571493768243257967072869400776995388309613169152966018579900490049972506902004293811472721336746478871325519065172724961910622121944713117439933464913834863925575089595504274756987338407486456139168400901176863085789444096936661051876903553911331564507325246402852337168929352106086145945257059097751151070122006287339421773236907612220133812327752680659991366247060086520204594674162059359070671827363061898550315291215789377171104007255954206388108233457701689948151378549459095752887704721301877823156291000289503526749300373829975334277868312989073735627732329100304736380020579845521422204908599126575798945659115536975217178994618042298324475101676263297663134919678491472760301223959338805588842037651507352343096488975496105662474207570259132838744027348822640354934825366242994126612573120166771235588338972593079609033018250452058410832705442664634784431576806129944377277835912811930432674487789219367602964841209181901516770136835197216950746102248871238395601759945587018081738562407229260114503348580315312179299964224317253137794449534286537563106052640326009327768373346612111851090830549659116327569755655616716277689106667514715025940470201182548585172683763054026922981773143962923980329484490139954876248622030625057728939954907099768533858065968700227379857085355929688761512570413530558176026164562896341748562111231292054340750180424887736453806658389011433373665518552376498700920769008243549973090095958007414219370220904809202921247009609977106456764548961870698231376579478379700819446196800640493198082222342043370753054088238107208633255184910136583816315691798889491084675993583165247659216858079735401739222030911950363723979588943081841983151380357986814816009901789187916922331722791646422766404010105314936534728704992414938795796704578207699827154163362878501305077311047116098236330037738153925097335841550615158380093188862858809710283337035409334028142480931468371565312267855079149752189208674414060137581707924579210045448444761575780154385598421787838483290196928195088951980879609585838626194001519725519303434904682896037862147712050176502295926018461163525729756130277744476524924169911492356269374088551616122811646974591834074403631547145616493795267314232185563563125482047654292643549193035535920935058394411723143925622995445336977196662709388640450330545937627763969256982466003019514084551110292258989776456933854373342976169532118619544340047717128100172305730960715230861450953511170626037378106663080738324793458267527843983238226397204976016152233360487360009013767085410775633929053201886321252156570525734089959914645067577030148758363906741904934515002028283518124505481571277461751015100358136163504186211684931436929463623477426212267090670392118020188208822433936704964730287978023635280655844751828203109109392861203859953466240349182374184834029782270370429488955901323137031707779269980971259411260582683942173387929035172910976733524416577638463060359584890485688252763420297061854074676271005556390483911386083517414882780317396800283653362041304097156262045007516236717196720368365001648058005025868624006656038290000845139985791125852219117303518981024510295815459787485331437217366023583651808944278492574598317940857239353602320847697605248454405909101108052195805985103886856861276445252674839815296491617737041497394541936422000080719874680522351393928409257170225055498618555957761160569953307420042586998780156071983660872481677355419291874148198282561013174006119576579585450359409087971609701672945087202895264327283850995083168652058914934659589212239567951207446230447148837218438592092066972712763062862604089243444428487738167921625557271173492396010028992488925711315796906468959784568667958210070584418923166744545281731471394031873603100188115186619056331711218613779085043007345476584329822359508154851633921077976159107439762832757318593754852976589059880771446010274982522190538704246963272459892755549446278329480198635933035027723818224935813737096217628591997566300794849333287345621784427320346733860194807719089401525671905291514504101585897202188209109660943118370223067062468889163568616434591414310424658064197838748318647622334011895339062857248600127828180207455300914267446005420459885545956847872550764300646163746114761342143684104516900968731843310788969900986742725628273104413721019473626925556243300972711506204790366371980648104113933884816774223792849789314634273752106209662009181324414396937746096369273958894302796557365937634123864334032307161735093709983312122540770570942949123292436631191806458246332436064767794044959292764659097543073319638500620888140868602649444344643525240984289315297681237970249327629171318866228681406659090256478124812474263390916918134132018695205728787003487414064289707770681656507986600250080122658973835687898771840401220198052056781622856791876411062842834215358295323045858873398842536123252678398091000009885183269636688523158434607099737306920766307474198634482145045800089315593833519676139396048553166294854925553713514097970733876826909929052138341157887582170238968409530646766086406756303298854733376251546618261782052773228889045536415974389590446685090138799414292182904905504570547803515620041879474537339488470351313646499079935965330440867450157951953505386034748749719509158028671397838016764764490696360895849336499897440228457535310296606093193249287768929175809146087090736743693104940272330284455620483869252042009256534675890552460932455191787223631363876917523307469967177896293072025651102666059424756326801568637120978077012970356887661819055054555478385287413220816956007547196803628803204630026950151920749092951010195046256883402129969269390768718277557694360299706451259043519170890884180299395764951368857424169867160890861963658050805718777460896833595504996654293695587367238930953178970584344915844775256613783069560166387988601808292699613508769295769319238037223498050973864129737252309101678714036609414902961141033404861617089996728049092884940353352010498519762429481964005439237552713292111698477807317433274527175266117633281304319985614555745840157843817247164872113653079851271603907338046890123582150703777731123909578102578528182223708169224562468515116595119739574821376297148036503896253462461803998261043951182232658421259612173125850463123055392477538742039807182940331562006962123178441348872265092835485030260180238976233526731275211363168040102977560308568447111248884670277123870909243719908364641778646991430680432434167636948605908972650073825512966737544312389782410921972646567365902747461279755415723237240314816348369059502116521112022735359445787115289489882564178621907459731107595234855810497241188166965947333922481288057180791611213464521292633034054994288804037964289560009984065159303283017229699690565221912902256728513864521889012333712924997647218681349058907463083665511975569081568832771248192608571791670673398615932419469568391475654605025911482259807518836665357980128841535258289217230525585140516532997558573264636966223732207200353215274993225511227414241442278359430023802912338418456919191064953805728752503513592363709030853303018402992778927761790768398129571865147582531417543202493058754205535833469998533913842404543733265126051851816894780942256045375389160558360669059273090567427385324829642742339556475520915052474795832186619316295504128219293971489176695644706146205583054909360887915494662884715472105211900068902369700343172020842200427593904607736585867038360714965356510037798365071338734216461248671170167084411384202721855568994966663536870223970482854318493783844603065270498548668405372349615906990897710232009568970914602662530838813514566669023827581638148366308788753937973237953462651040328558387832844828417848437574402606252026230604605031851970289040711502144522345250661088932751670286291815488056393907328628912906549015428729565545177027479796790523117518796949053041070234400928978937804504330959071082231736425033338445020671297759716363707673707866694810453885110400320918695115822703534185269910822737179840315290221548213775999133845525138563065876822569940582090464544622062933291178872292272156341473636322716678919683204202556103299786587778172055728674875922511214730206721947955736013810783636878899115403017911243758571683618064059164641224749917341884223847895063768385473843354302910119461832020934421133128665629889761457409681543731051884696207304195154040054610164213743275281721622289636006050364805026006175546144368140567450150450571030293469100712174102721261939018346709956920504649157666502163006970448391069800133906124878436084972097901083818831543641220042118780842572713765386134577710624249492205828858616688933570774279880048938424895899835168728455665588683646017601851158256197956987834082038839309861345903318213120291559827863208918246601870801286873186686445320638348961318363249316048823421800124515733953417002454725295331735686257077648243958832398086727504241463107619451707472716690343909006814961146202113885792875165370682814050213219706242360476138537421519173143649826242969107879165552365583717607124264463245783069476224591215822584556869933422478566216380419013786556454299880164970159560745412844305481554566495335574206183836530452465947821171094861487776553955813206077496372902283205902680764048513539249519654526079030976412232915986025018220336608657779134461158163096578113987698071600282137887941799562006379957375450183501405371303285797753221145094610301732203426430463065720448537630235901156243509723122882313013329356091644779509940133037145695676786024132623018357712228476032906747184694203777464371392523507244480456777291224113515764084383347438262591435900086033109172965841861070603382847485903739437116054141706485718443139401919207560195103047993492876594716448962697044276811089947431315961926677228683637458387563205592766747486793412567864078202635519883454369825532040582404631611322093764319860374859615843171927082616118429651104410456820104490735602186068741154585028951275296148337205914911432898238864143878802360287827962570408455156972616312234788527896219196488439820685210356572834597500523357080055346846875864629867411434566182942504200553568363618606205408449973086365245580129653713081167266415881947546153121834718311763709903180225723896704602751186948091260790584278280422744994210691046540788802296444371700112904990516286554480079551125721758594459025005792467096903815231988426257824768101411707129886321744748034114862128831032968007704181124568864267692590892153185985861370164829294951053336422478146476443977212879140946289296198604834870308486257621391878033890889467375570432543435769399914032665016169457722348978211639671204384387837802172439086272257185092195927255095007257842304023683075428763441500576108691708987182024465830888089503824286961204384265038325245039420283119639445742067112761923037159913352371467123957162000298715314664430726751859361774845665003379304806066815859497353892268621874586706357279957033787351245234945350190944498283791980981714090094203464533957247866844618064032284016220220125324456368623308303815584708889972537525210824577384143505406251870422199784157301478607903631990174673536234915946243480157383182854532912613335530845353961465768548932457560499416275577070492077932131072746194353499180161097633494136559896426125218370981511227111449469692595641556890923174749077289244259877311131955199370028673027021355139342410559058477365680390906670931358274060108355227225097412327129601021461659622137773181244725511393382964012997500170885215901124663862154491496228562485878768075315364262661665571328901286000669931628563996731517912453529724282497205796209934612459675966124566496037810982222558228355418270746383443575291110813170726981294129941355317891322186721879560729243133214046500580237138386257663002757650621375790587632801594385751696012601296918351310835057398682835505688137595766059834611366328461920252859733282242647516432927699014433429372284422802972012732518139962965757752968999226009476660073261268366176339137155646592584288973426811216987693948820417224938194321197227434780109593549974674128772422450316508661433248218635312587612077772528797522637422354729321531123387296781894391317838133548536756157234807623386330478467981973293851901729526252454813962533882528816596122762802261358190303588846405215161741486402340274938525086416887326596535312243918687723676658161060354640931570852644720775091212785689415424728426734378540184193273584878890306850646106586863043990306185559091832253688835800219771540755298549842233516261463392071703094853359276146995955410963326766153851003890190488434194811004187360324734953694127599645078299452733934898568615773813951040463288712084966751867191637547268642528476288745496887630064393734507852780732784540938088880281697996824842185285549749609303364522511787541621006203739699974280528543397885928627919913988897444005493916905051059431277948407764648399341479723717772145337901022127997430420364054038080432496561614640503176415381763783389309136653885069861506710561619057794011941860510138052918100773303961889267539375429209433291766761241995946730885516369193691284575878409839817030014863902838995632315387072165877454152641714420727828008338232011195613469080035334292199896936109080813855653688177258108159047440286800272348966353036653597556213371129936770165312325997084650197251005504907438159541186113631741995818647974194174439798380766715859469212011302368292891559110880603068301393051190735284743821149136909990396555320270167777457640594898087581548329949906370833955941008940149051904816256578127819261339554375303044633228751757370421368328809137085592462145059110845675997919206273194115004503225317817018766207124868824716320822110675965949908438857654324477255571250838717053193055879818222394963633234753595137600454236641617631940272728191763853433247843024569496871689767769867518324281626945333868862520820418606654415557026414764904858339427661871991065027682860507970435740542210738405785719883628551402698602612036325050472629714259096143248470039046757455795167304516243913130279539299537645377381366276117222464005966151923935580018619343542213726631216622892175361629986138398327345551070536305582220484333207575971414792512785170038828648451958417234391815442562134766645695946586959203405881713625257697534038586392109338644036646122898718181754352540534362853039591311320911348780428224097780762887909843944125666171104062089089118418737503777042778911174559782440245263521496045054220887009725685860836686599259099696823160518876353527603515604568055245706836912283332378136517821443611781878190396804135525021812054374373927677493486787233499154740118451400904954579950555949851683169062092911000324915456674952501186843290074709125416110182155158249607740604528358762015562842716912230505673282952122417062073330160596528858619381203789822915003916560143922357399228170793443747121813870791836480540673231946578314599447357500433195156964019152849355224742829111842250589573715165376593461401542373995759065487778522178228332489752463188292601357227844233089949441673839038794454117534288710640992357440110224797326825100141902181094560718752862015615590456698148734914294147164690365040913704675212527714972048745917498131134035160483388043499353247677074768812659294095988472444954156763863915331400114044970519326397790342671863380919873423273185299123117851417071988349672283415884531657460814467140846302974216536603678884921934136475515232509291747046154258030671011681538844596139452224608238504468724144136618327341918378624902013764373192139643388430543001140368867981600877272959141092940656209982192237758403432778008759208107736417281516901557271671369159483195211470355718920292663544817802472215898528719107218760711061556457785163282139377032740437838126556473480699647132242815558411163936534845473658139230446222690943013834322995598686229430182421321422371410689318337459515226773424277305207992125636466513079646552290431767547608185359052722115360888304757842085230670537981644978402729564966214253589919824222291480457103546643561788854242270426807221832068738785838603494093551178711754341341102280731548493898202446978321767762224324833398093836630045219444561684587865464381115473740506594246027750517204654178603279898609819009959339199088565950755612218649489868248599286666752101802274858374928713909999584119637491489100077606120829302353329405048401026316623945911237100340052850357095522968917749227393261450794239154542331273295901806669169239318684050214906430041423918610625294657049910309529691929896324170221635730432866739356824791252764639956695258175348898039978589893674444290800523482142071589662332363981821603002645529507748372488748707553077131829967642738606829968733896509955003364050843599426825784187816151188098849640341630786110398399084827075122659657974217163515531293879013111853274566834986659319764055014863744824440746974362039259996412104785961439283367402660337669348664398741839997520212354061749392617708201125492892613871099469735720378327801645222108971142033505981369386802854936297453625936815674882716847162134624827948161227277681377708140751275645645514352414038612109351398559152020122722124791613342924256747929858451448028331051476609188984404416833071019694383128984998374669555498920120921004674215482677028503041959550630218777682279362502780657300559563941422188743029628559124201132599828848584703443034858768221335353959810231818616349545053764028117152285097020956956699364597454668806024556871766153884084545983549697523162605283925898071890088638255227016533800501680011348862551863452838793802975310829084266369264579395753097734678977264804971397297039480434879636442268746068032638818385307808511964331655624253672961147610648916402273553966361275290921064885293387015609159961025570469017461185637346068428523516042857071334196947033091313966585251531794139290412583043553921470169016314254908463393816409876979722389588730463056945785235833414028121333062653723023669532579295805506968263899088152340146902227637391715048810531167224013840237160299761847377643494226641388276187227081150505308360871365252738559937952674556790885069041345962817237392061736759477861368024764319353518595254246872119884385767694570563484350904048200498382767235396945413668592711673909596383449192639675343134114889792493736363544747974578458096843062459055425713459046008412119081427419679720593797471422230017546925840909761780430167890933899365745161974462827917084974457203152349686631534827585326463006777657379180879216061911714156318780237210876357842258164995395408451771509226146670100574304746473610349085838715855601476520470713025043512270211414509089227136361281293753473868903186920037623222394250139794818803727310780822324613598855521640312326185972092548754812553019870311879414947533742362541460652773921332142613075969439535546947733814993186519498069413489169832665817616141266628953230324459286804985840414050819767424294938275996311761785433839994527557957005911104439318627066920092028692391100953856613756708946130312496376595022772487481105231963884274324650472192727931862004872350699654646038231049516913213434616138953791938716845778896478465374549384187128204934223088164557720010731770241014546657821928634228485983793866512449442781485532719379641963128135304000480876924450317978799373173272571872009795078711251436417085059652235175010750786945694699979634573712997502274204911848453466014925730901618794534030495281988775323519243328296988001288512300411584766560496857744419774637008155420274923348587786232824666256368891060098668491483233003988350609264392782238601612671348355311855961046237627633999829975408326899712753171501309748190221860715629205715734934924519612009825015897754395491268473362363455032755396239215259404815218978245314509649822946762351976783315678712800154717875923753935277609517701942601799145654044531964347001392193280514391273101064755225743332650718464180224589308945142313938487942963819264622189130459997163967204140827284041867791227775158284443405607256444445128550487716062268728704948669456395484768598335203604284318373802618739091252006428710264231585978368034124312194589413075255133891813214880406946760044818937486463467046971251369165076025515542689884591531836326879208718491549613537183041392406763706240103414982439395747300761764184901060578185376527985389258084155886415843990856549350072980926774602053397039578065856540504684106389825551658900842605223985867240628785730267677008113356959653354773284771547662756371052020809267716474591623281367116153767099857965165748856094124194093942184838580176935774026175241360737518997643744676867874474280142192566246951608308819516333133861375990680689900877393677596471301883559649154291546873884786844816416962084138043299202780792398187157042586539775557561379085227282833212421935177566181371951677228323000987766631749263679358381780706604015884627861636550482469778584086675574259275171692535532474011959625425761230013010034308280061225448923324088132649539214518409649788890757447716474207454882359725275344034274055010859677208836211362978171930144901371440138212054210209355223005205430885453942109956172967347546463971939704437399283173047584491417280981853548478821172644135061600551380594141219339164407005778267015737229961611882306024710408221433997386790997186822916826316071012343874483699447578204857067700084555054662888536959078279643284268182162296102493247737052554862467135616250918830047910641989354107363782776998839033669052393155944866486574727898919242879082626482793885530600316601898443095023124057804073007178965292432330269373868802678469628524238853552339623877707447979844506545762749611575043646201904779447872051183019659579527294107505808090780778275539241261345763722861885592588287383576006652445348101217189389449099380298999393217816858828455065160282030852771743994474967364225943538516062453741855785742093012380303956617869447065997972195769970525978885984649692984272933582982053586416273102034118759371280038660557932658724188805354384515102082372800638446581157242205394760536202509283129880269218992720907130659992374520311773011278528745824565027467612329562139019071324364324677967716748392362094587546621488536438377845472889641840654625164012207170813729614204321848325654926430744146773280932030340481886632085729026051751456280734749401232248156985837296859906817122360288566272617500782211378664988201612634206653150113858334823354581981747765158016958309085044401161851408611707032547168049106118616426382655795565372358680590193247872783015002589473197177810878675433132288420839929841208928854998102113912134279937408026381802431267995637870791309355633912229174163311087395117801776595942808947477328903095207353098339190103026255567585613070125902997888899703732670675944831791869621247107606398608730973591800591481613504426281909823561544031200439165069643939676306035502204413398925231528179028491619268797813539130789878773625920339988081644300954539754752403011124091333364180434002683366819792009448381611162479232519557400377571693414761243352716876969004120147173085587473374580410789136812065068894007503346749915203507522592695994813076575301568916636702142053363866208231140001003728582284506238797168173842569379957823238064494106577945319524789433213973039540146723625118496359895038750950581242149195775603831642207338168181100940168187537841504026953044420007992288479973987073653096649729901475072528370351520665214849880830884436185596152439884776514990623466639211207371291910248769752977714861608449444493672135836495289824585857534261205347420451128650786098295987532333645322549692143169922537072286711285127574856402993363761188214868169608034238670363789922295965626790189657607886399106422886330523021079169006078631818384341153495042727513966217970365509266134398725283677286957952602490878485172181803338893997573940239009302217641607065339444566700619339334206740134405739250320221709662735649617454889908531397306124074860760318964950139528293006960118088249969067181508866423477705425907228909759541369963144117359266431664411038856985150937192880962971757754683156546377557334236586934830584158557988840325739591652556844219240430662135303372529607476599396446840873776897818839567723512099757122619417289125059534206308709653621460095510455603150988599832308040934170065950185644095826771779894338610530348878090168660790116694120473617401565095262369584154987072641769193109694611763221110003134589943226831309406240290990236817942396841943065189246355071712252903771548626487887604729837695107233545365695964891127809457413053517904977192061400466339122293058230234751048130931196367745762625520881803103470013112296693745648933615000498331249213583811393459375585936799285923422634211598366226240503262401462390927236175812889840907813752597602579934751994540030035012667754542626907685498514177479082088198676096702715629655180987412995004677358344719335054871418458491099448004882074006553503968281610769032409459593125320059114479215009019393671469289771266396151470486573851112475234110860863783862609131578350613233163104473893034722766334426003414503163949135906584848580592483269435843834898745461067682602500449104492842029408795114575614375038935750593153786662390134370813936096352792141157530734720724188739858490359114155208559134205462131956486730210776127203066721134643874853451043676822233183394365729850252873341344425675212082548559723341158076666268706184305076686415903432942576759464157498443035703220505322021440947260414906906304096792599489664269191754666524278357358931318917953866353957951471544020081462966788452646786320048091661816575831399946491824381477329037801295075822633730271256345494496202393747420991515434997025498603217523519828970301075284866015644277508214585591089401065595791471758579407626111688946978695346763101082988027689567546271591077918849138587654777691674361161576240662103680130070826245584725282374260934289844772436006913151800386639207180126187028488515590155608046834576682540518436259048174264178144545318825792819507377069307713466973842209705837661943882234854730916083463055522825630225328987128571519080861535452742265712517931326913600365513793075517843156154149148071082444084355345920657557099423517317766625739627999717798068181649403200567730345817860386945957494343526916056929600091263218484598949131377386509476085509236306680138921632908385008265806613770314755592534449110904664037782382748043421102797950061967696771999317160362467176786478343215726345474056876662596496487430551137699120370729944308514453514382745961126291939355852040033400185394980165022751967968012995802702007602749688614395730317800137673593306596950394057161099627124749609704714407866456998261827713556588616079093350284628674872681582776087606758128004484911907331388993449465954401902131987617352957222535399939180892817685694690314860761146168613298350105402150090871480977112272726930135200195660717498764058755838367595256927275867121959969619340378661726267258054021282277832292573010775636562175124735020554819929178203179130120699919340190459303094654246448451983896519791474319955095038651766935060513692279544577582762653644066922730766023287375135911792748903557137217311498069242140261212319661216896738516135197489467030933188407987728613038482386259341450917939894962594205685028003727710967164279711207684149671403957066455112518705565321714386846945845448258513858230308122949490865235009077940305676092367240634351537671223156410752169150670881323182040334695932852937208801155929109967261022465288666926806817777367635839362075801656945122946585070513911547496998097953363455701693311144398366845863926560056179616349493600200544214163516952044717533077765279137717293120357285226401350380956201212093671120318427955565156502027104238326743196976643781697317001055011137241116922601037108810681812686893670797491615670998837017062597340217956033777337895505232264707266765208901973876694010615057404401251041163499650836490358776172205176706890423897919199188082761719279918418250497906400914927329237038294325705513567081432445326110364148372473354121569746133502278803599847114978231502124052663568897059869806655655786223133175316259029360794677113684040003967124534848572071741156205186865845311446326341323047767616851642691651542407753934869334752251190159235124310378595775142806233890454343158130774339486717231234910694627090717543259991579428109658939363020975057589601632604383808425350064768470900468245954270655134610659294931928612173593993802903089924249577841042278471743561609660819180554556489426665012469327841155054275794590684219106412108740011742319266552516748854570748480449021212681489515015128525687136799541293400424006867015990022699761350958300831573729003922512971012705194499450659308367366606627522193744274817817815593663720934197202234642746612857879816343695353267307919429090970339441678391911502624187020589010417022884545431760915871327138496918567800072302249981439020314211537625283189311352983972196147916368253544849923300023329807793846127197864996363430992692601294161467733040243794810845425784348752588507826348279324109645108649094299924572544243810203124499971041047266805265117038586442453935585878702754172922368590960877676583567706894831253689200031260291983700186232642243093818952202361643370818407951178067099071677139047996605440711996026741375668277206507629726525823489073547878618803215866656349809057055311447532306503843515279290964835529963569964532075551548607824319034133760242604309423207222875137298424843609813390775156445885308319756678730973631062193427680331973681696401497660562172511132294536480561306763652460061522718224331135184361006532921646412264895238062056543123315138546693370499662672689049184854458693943485852546992879185951746369693794111113066574852411949176810275811611923923661225572526037699107027888694149213397242147642699907757357986780091301099251872651073500411790644660156494866353449509870933689862807066517793420750166925996447370848327873597105296314535746726202536274571170332790483231616316939669103844085404558509061127930153598979264767839734284535496331138765059069881393691840875586363356892107734371954529061209449326636144846376006398954297419006474699039290744011305378193922618005488322131387013834432944248069691229552489259068785915076666307092864597932974361451248555093444179081860652139750422233929546301202004405751480847190176245533434683667642533379995284900306385821777219636250398691920986500708009731399648173596150867609247307093675638932860725259388623014358596833929330445142870361945382686608815938177543092207930514345323720009888894015150291296224156257394603876399535315038950224022619753897295133439943690898933008506982899536534405570003704234381009164295101503554794273862353055315892131067671559987553917718809249056107514664954350649135511218635225689567030685589757014253849962157647339024294004464623046421650449765651803115421672251767951084563854620553699903069538405228836095480442264288918630319076471115962647960606258720426262496498210408950505433114397446988749447353110800418661683846538645035031172985994670222498165228591867555126443517764365279987045492737324480951097542252509251504900463132532221181802925290904370554679847090512385744013707530127697679389962222615660693156373327596388942759663082380703128464720976210969664224346388919663513697650201421812814589359458167687500325903671281786285866094701781964999466542810638044539426578244584149334025283941398649879547387102124322933471276868973996900925446356095599233642801772812853814716513979270905350220137171003158534453772100241563494564136962620195191162997464765186414565849931186338364032775184552504900311587931544779506844473611837763697560382555566715656937777058550392535789744825904570018472856900368571485379340936214918493043772653613647411228388720799321684402730076324774873391411724360097389090899110659376424565495109761370195568019904884271597273789132518842537285654913431182007524840947445942899405658705559934485154554753769842265766209107833554538075558053175125160845954385813895838473820816969374782834360098261218591245847559277973677524608336019176491101943216101519010367326214294038049896202068693486938901574765678824393029727464910561792053146315644189111493113588247679426213530061163475825882421392911127371120826354588368294065526509088887116104288712106917075746667683115601777681149073907549435606218698437958046622135901398543643121129752981535761760472960755639944521716579471632222018941630348318911580757804166537462170237235772719155453146514331829804047854446250054405062817186015284025328613446519424950419574534275633305905668388666379933015597508844715591229882368554911850293167317339314451800956677983937116539164190660167382507979698865629004868104366313886284399314752460396397162826841694034981831444588992216668711667878468225514228448182047268938673957194389310608946736256044829212046280942510649747835205195458479810622640277633768421997785909585313142867936427355161320625287730024258292011115931151630728617663218566439563542854480572259879613727866515717850873308912192534063510237909680797905466923813002992447182416513461067930764663097195430043009174230745722433166386659328653184013876350728495092829882417081066738158721508476547864757761550616940618062636927520389101095513224627725415847303201991286343815165257357861643052500235106908914956923501724929566836194545900257159518143289580154160189426824218350964502889951066618906482719398970962371198102066004491712465291837470842159428894342149099130474218160776015105108335265248181457546948884683584996267995431612398833221658566122337449356235547059334108276364590094664332715632518622535818753542771166153035589356521160332507750461773787513883552251225666040687793772168213434613460784575991810606677444607060187335390013754694236683288874373368265699210552007155995511596984003091865412112214837209681786743538413854924476066183484935709914134461277500397531823160283700260294700436899953558532028511629084116322848233001504181056159864595661507556568116432938512748776846817809937076931668008896460225709100004150732912230728184764589318775691751306134254642208546420849467452206116613512270007492313080564117912830129792607054563862954067846539077197718864361809335373008239354467069927640993664046668498006992426831865010788098775962839587122816423452760653244035386633619984439584745036182139096704007999372479466768447437574751464490101914551411678278172756767806168159258345009899902413635255686131504560430387918630390912627597491247909497031382379700333922241886849974949343665856573649657821215676464294063730759963642783053112124759821910127785404946630291508650590169613919031745274408931955786044571593684821759345737408376825702946270561685917846268662559752335320136164584606754819094780265818190235723920031271820958105118266388940227189555506120263836880616621085557044293835692848142843015231419080964705046446534217078604961087412710141786149477172710301904179193429658224530077736025652070616034074949199220928481849202929669445319325609293787954736901410432624727412061788609417416950660282362752975764688869895872385776759850743362092813511696120036906034880679501084507523649065156542315185152531410823588925791120493164053420531904953869089721070139036020029711629461820344015225548940959897340453863418744941774172163988484790730799444250458678011558871730285997394753748621782940792503439918658010038349998206907771293799299520936885056780301833466577704690027475781989984669478753531213259002537351041495849397349031517840698451203391144229737145599491674101114071210189311897245639366935130296553466143297526268965005968947461372409695766461238975656829784420060357236166033700081686825033163024556832398397548876399709758697990463194258062379876718427380816899176497697945014373483108527866659842116933078374448389277145556191911419444978631249105007644606702697040827771254840710522079261708009824792023656390441486234690724672424553615871272337545930693274279891165699261451308238643686363706609505481906681299007728903758060278162423979457237998104639582685267563410493437435458172497615526777049394461957793455883197624026529681423971633521072590894699083814900898259787739027984541061958377619746622879132836169785109094319975835372726326955171219458911593108517137956993308873660544909998439946586725466536077477104758980596218864552896770897876617574568817359538127837948627728294337387230603943079331169946438888080212462599599119805077054906771182602386347086840175093833666031688912219111235778843600750075152452672285961177185686010230318415106121793161454738354674803834348519506351009116593786433205827373397078741638892157680381816133478833716983512917130624537545200633047822179025024155067600010424272481231304523625387072024269587316094665885008971036699488395225981564961344424357707178714322941591471017585023848719554630905209131068469501934474606652411937358515172606786823804725739894429688347366259790097091009490560118968738584735064596510480427178025316118239161709346516457761302240569332297550466862301992536844169395965171471515433317484094191857062692493956643817487183946662914159276664254999313395668331161661922296052095654416991373691462150601832219584972423906672017746212580199245150845738238125125264785533034318173990456293849533392887606516628689253285767694449935389289647865909579442126868647422515793258775404576270663912695071663959222906496945395656553015195335729570571153850397213675479828618467898110963743132072545747512750182033239552106023486724689642170338476235255214898901947710696548529636786188836247429444623599050349103978785101698099229123970604909657845147052744717288317872018884087203909277066091160894214011231960397788871023277302073272326693298498427550144838565753308961036025731145162812893746022543762917108996962851834048984876943890405216240513811671328642675975243062540496028762675994086664411339313462210947702263056326416150074274597196772712613015408726603567210705568810362341355631654974466213785586425714508093137988609531212614484750115747204886517723513141959585833506936603700405973360146790926015394487122544477746016813643629543081643650636872453512312420816424772672456058541698890331445247793715865881191873273785482278176003841481303412992692641832789677104646334739018108552689599066144798465791144020762432201140947893046331884575720748332442335611307872246424049509080154482944758985609210746813835485180269696362027511881224582338196757943869899812535785094502200255274491268589505411220019855525911187148192666075642361152865258830697704504907451065961454236580872482846405136888458892663047786119763727238560328951283469542841832665501010195219095122654047685765623900268054284990398902023968397311533531487143590292249926370933337394699616173594176099637762298189650400056493666506935887857374050224772579231427142151391450431920336536758935588092433349761482750799274816056143775313364188640027698275636559710683038754278575089928804509943380399260974372482658697784661242971819322999094318252035260037343993831670297609863214589367934216756829811549244657649652977856920961248166228523605994552466176306379045941971672078183656475763176741554243784528953002777644049544890805268503291077698733351280182856318932656988165468453616027536724428359476396484968608050823184375848652336139263228550748039869027241518329870370955100490996249175753823038698427750465833471469815546069780521886619612503022534187878255822671150884317816507764639843546005621093721537900220694401339644989869512124431649819125990118957311031549170106123425562773614770637614124712146805542536000124991248500897391577865087205924310863136936600765231951911628956996457854865792564719046889293764337106373816693414525716836595889395584845543182547273327077218123406760467843227042336986560939347005585023376160280778062656864505123194709331017164171043448687917034541252127513737491874888364149471175990746595761532034335521349514083099817262600272640417408685187172662485499310493576081267543712319606561919509058989796452507488852943634200437946371496718051196053580325797727281157284151092190232836866993698311597497786313888537272295174683494505489379980542124413337886332930225928633401962222067415255038724216579820008573045115193617613863770711271315090195245959197052622494593919338832425489123661009566461628832353070562320233796689821555251765300591537644630482834764523991964352116151362504095383992937113621794886090972283573275208944841661677215143808873716803514964395232068367276705060541742992485492982483544445198163096756474673797455997167859915022289877334633759744013790061522933262885469626171245699198454604280674548085518967420656041028276630437653259664668191534218978439026029131189380498036986974020726839566292584961789796531421885658372304636829534581019064058703357623746105185753095457453759512605177933353239166875434466483843658655592563779263650438566542267011924935483007606609692525346648293109106366162316299954327489473920625289027145432865611334084958553894721403125251937362576804423789578660441051728692546478590832347451587277626420969268942749475605088660062038104339637583116374516299771801231964385297120443751941630948376213539803536988115867484035388607131491042138860664614036251149705343239818837968711243116630800594251272003455319062517352233372523151022216004138462302779455542666880159374260577185766424405999764197915265919793509992139275173389133750672378321679603978776057016522797475258411130589067768828058525995908219389536251485580274905317746948855576635372413751593125365378821042997827645886737928144322319548945326350857746285020764292774298442037167789531098441079234295068858355187371361728765403539367172159501411067936750131308697210941044019796864598279715828967984818516543735078450220292818520228096587147584287416159070523437533897696219312086511155505669905226897036825571778554483092830354092000018620671225068656092169343201996259163432220922264992951605962744506662668000826468971102335482509927997300873590077614345404904390321065371852286584473224625757127689420879689949954946986081790868044618006813297188127302415759725761528330995771357082910710841447637684772418337608804361631824160341796158044087816170412569704546194970980754475557069330759563904300996327785863896390983117415563825757777911294804192642572667328756510209785223175552297465354284612995191838218631145494328274078962807391780448282601029004389535962193419583884680733504667936447798353457497522037008069200768890642664451311714730881329361130440092247749199572214953959812984349555990748934630315460878767859287633285750971217755530341493281745587685703440833875383998440876596468703141456876707103137112689097455512148378102731246209035905068138890225131461094830170607682926909875303708852136084662600084465008314200678623022878644623347198906865834908385393885498494496037212684730822951424338323211047930838581073266596691968703207613743074840437115193408423841980839063800033770036684079263010516080669553182118732685149438133472418818480955998041406219663817399978169313278832951889803525573823925009776999278886194702318644550825623849271951208619567791349334132558626060224031656428487103313195550118112366504696104627988540593375026121360959207690022994196601768911276565703546408239561860037837408624080607971030205665172454615846039088234080441331060468835027065651636838486160201516388283521543938993520335057044989026822987776298606492400450675053060699686631627051259570118593941955853192890152448701909081054769541757303625757519171363230772169561295972835494013144164701509976839218234656993269911486208914640836465001934371659178535961257271849908064244415976518124486218250021573344146521003433914737430053584868266045071944318970244862623996951520627145487893576019398910143781843724642318894571077243343455621669339293270149776913583512729083009618830288436562653663189269887025814330168320943171277066367142880492685565214958450864614399865403838140019235423074891861293847836643296870031494470280880024865391451772049677703568559577016027687225882152436691369683126362738346922603148029405930730863285088224310329842167941409097155900597387004727482846196837312908981774770865651790241953764822865184972856190141610567639578170391010256750153937497531200651973741749544195795312344725845124399394684896200743934299545199077982304232919583814080592148634471032878669935582461182480172780434563187736746731660258950287328785826032058927487545357580822032379641481963971549803471635634207457038286244592416323964803470055171049495924433550792094972039414554317315638454715420755582310885680838538300589373633424514149243716025988735082960348206458526719262947114558764997720502909450672769328123902115697975810932281729480284993637980305348064753388747696188087410109985285308245669199237120712922892102483188851055521379723818595024804847278757127827664698154161138996032719378159933847587707855603833047248875235714555117324852998226601975093859553293299803879930749375559064132135295658852298778627063861805415471637232739101345406245447031355268992749228553992577064910519384408677922208194833998835629585637782031517191111312201887278033319473719303535304751401447295782833338389046122630181981458525886445709198868632228940338764138241857430964308826652493952346961678921101675705973720821706285178451907160176504860987225809706463183570619388074916210474113890714737988756796866472851708661686318334281136460082058301869680206847414878769127322055373561727667094731970388728796303551162691394707155031609883191708717924651988147103538043421317427982124803327482558390513312090529118575089272877475226985432819170196857751039046353718467967438325635050850870343520381968007391220904711259651661956618997121624646794900044937051199005383561205262268375738213960082740698647906302531481366645804731934102800904085798575127574859734201762456399107542610351592960546203348821827037275576651198837591537897915845032644258432659628377913636020222966699447515367342808512035764422390118245410467139105837850595172220905891763404845426104891028644223257248969246693140391890771175726928432862906857224338343184832582645286141700917186321196917234650469466531932160074696429588450864937458786451442172064210180218231911041371149322943266874107132891595214341531447670454754896274884065284994150348813664736118806684454026649700907211095502403219192063919928246077843363398449770831491866211430660943893459445245891336682640457468447689410944045279579709395747906351427045211691350826385582577306880810999131643647623779031587443717738381853428464396499151747198814798920675117130273954519815494181450174090190692653388544814982364413513213345473113885536880245534904371729801008681323317075419167378782156732481312736909333094164710806564106655614057789358196022665348471944658055324372309696658802168698550969691361392989750434365621276091789850173326876893200657384132737945967520030364754893157353838805775932815844685974629887894083891078008666064394781650556454389134647797461489271467005265524593517969961090694962247331599067177931244588485888524363717461800447694180332425487054522297658357585326673598812817201195504163158631508144017567351966478896686713629787830923941371975063758756941007613059124049218353103000031029746429967577514072732020064103096684683125338981707590758703395622079627491322944615447401736433738808417486617280543142347796560083714955722359684892848179357801561448702154867796317631108438551286574848083643746040977363165279500261805915388512689718410305986703566071502346696792113174284614982123382226848390123223126591375699551755459890709818064597653709011805946104250241850955676614181041612702991700526656915201977675898586627544158665416005788346569726717497634170358321258129911057192897551895935843949403770227194945448257512279775030408889047007457567702525558030254197081149728971909415229721060033584100188176424815411335357774928721277701489493545618942852520654093062502939723954790824601956279380837672232889679611877769784119138993665154008953741780930444202189185359914688376387811263499916569914838921576858457122764476812902443854004215102195132393763067444730888070573964570482150806335514963350357817192947833238478969085413647017740642768185067703411829035996777306046315623578444680076863956218076400703056047855927503719070375242869587519816730547198389348986060743220288680289714210164806355912669724092507217404259586070250062355606172775361757142077428147060152807205618777075185485411421339655774950432989032053326558549207079028403284412968782156838484590098498232712983884794516438315005730556182371019896771760519252475456894659934792694654592960484445243744428531184194753456144466049565871618144997648314914384541125143372632009715505145520414271516416076205987490379175275549021108730323042439980150308781930823265213857198857636161440331857384276566400158757660891838722634539070534068349248716522257542311923344701879641291458964696005880004487872925520749388363606524503934522948071740382674695937879522750172627611169531498298734759797792254014674690080430721682901432295057763825708227269384025438259240860954469155339615433678216166206164513985461323439925894235672701413562734636617781057788565704301804325595208219034812753039518793093479245047886603418829420373229572791989553951324579882689176816897050964043710921457241790066509534073970679394515839799460122923729264194812067900644462466286114067362404546741267584431166939149466259000416488478456501097937618366518943642895908769196585404441023156387850877678472577539471273917638946767569094051449742512199068968551049381307354218640551527356887341171241362488933645190846829679268491988286229598334531560739508714895205831956633430192944786574417859689286233499994877474714163624989073957335784557724224919865336152841335378111980363226175347933156756878032939076589406941437857173332877023463829108572029739532863181784616604798268067454301267606997353911258533450208176651378040498947662310543424225002466683131071847080461500002027616507286403271493468103566319338399907611142903702539463869939159096066395249483527510179088647188739068397102983322349935461646174537548407720269912837596089034139443124942604067676541447043080568202412351985916536660805474145912876928917926294370974565408522612638616344146212351131788943270725652680974991618548794775238008183150961138794565927286667952036396002731015707047307153921422679262730459966039934130243675731751912467821036790894391108985760958661606086478415480896678873234328588348324996168050150703164455456802329450707934055171768707440522797194357963730836557524655323842842506998254840730101622219456757810508280585537072752535810340517560911461729586586488365334695943690454492448518905927691483776928628095439257269758859385517445354601823071876819932432302737982346154208639428385343918681484430833754924593801303021307409567144236950438705143925515980744692256560927689220475866116958653131413821824175841440348528983720730985873340342452638022564594845552829825914752630600515534159947982302407515048148759270246288461883686768463822713089783782143205133887618420931424684560529388383914588625622361486201738542598038634012653480186108535218147466102926907069938795389343296121770354498740401135447121472842693050182552728722315026072074895845119930484568416779557050056132125689232301098279137644375722286135878119479889228536251947016468269123925372597560496684802142628868693206940772909606555009373816717945652439661142480871190590647265518756626733671798372462616098541037361123724310528509903976635841015849541890359055820174276377601436281974226046927429819418453355617057543952370485990669393503564023884957621666386875229074566690455927676616984504368808601863739941659760825372415598056775181982771344986525796375751202646145926425057280040344092590386629955389695824291698466971512226173766780144002999529547693537617547362027637325515657028231129091700120794997731684406459931573372658462823375190422452423182002743858400116978643149579517181077606041286234989836834351552585218539207986497351546595762019678755010194590343104516734385183107855051023918766836388271663442446841582876999710175733517723064873612247350847108796909348878643058721095315035409316575654385633677664382091714371762589666323377492079107568295875403352479988283689328042765930111231154727511671080979787793269059030123462134889442726754055243674341822470773066556388453247441447339460972600158895611937695817337630938877983647476885092798319914479041730144609161205203061816906955385648534235521078253466132369210195849310516120840140128567595768172124116092793134560149940723495972945733553062348135394546255853650167085542842603595337973141638011277308878739982191519063422216487768456301884373504811748320577572148507204550404199152242088835912477351915585893127183783013388060618199972447439307740458063333264260361824999634666640334649891987486064312402285826681266120808629947171137742212329882516808073914655598582495712376224705861970943968434562337096099320364942701391434382968948512182973639410984189873053094078114011192233374643386473962865158027967743016489052440034952749324460493805050473656510812447117510872827498577384281281112220276958792249611411036619615115689235118564624515730614134050796863933906335701837001872559294106893670325355856189649193671338613643411299940692777175184136990509265827016378505578185711778970104152519971164590646189579117749725622739199312749941602504273199770520753149943680621727230906560976122578114952135079553870889721797084511090411450994796544777113561417729660456613162697589312997768263338302392371325614589715721369261113616681804779934746278264567099029555883496041283561140853765634100145198173401982233018319593770865945134700208302572619382802133323344223014820526828623704200313902521860154202944558009948009744663098619073416121949333532915135691335992113294480888900373949175174521947763631131286146646507183488159000575453808776939730068686230936097762857124748319611445521004560570183555132117066105274898801197855364969056535720166137908531029151420041547699893872972172475967504514103545710862372296465848115504197719265413648198464636603845105576518679198907017309436995752646467829242454256049070404179578606027722091851525911679412198619812144989410594236923455518842432771525620898083070792146230253704886988199123405514371962914789757903763379460160489356866871961434539873366921915621882865346386051233841696812817942857776815956117975632422956204808313569705206363479824161716615296382646120969472692670264335137274757388502605884582388057235338807800361874096235974475869879836960033788671644364116108085698772560773282161453168312024181300262976724382070366518539763356629164035476993466364288369741514714301606349761452044793040927237338820725560541857542604049438129649861056119092048335353457545207162158213565852799619198499335423074554057524964776370588786428145780009505753646959036626284138163517321461448935793507219147030270548184776349959760218498433953326979515016568131661840765282922062622899825959230684786201879824832117526687756935184248407081613214003656175426044843333684021381558077064909520085727707029318854521321015510242761507546034417953245938921078154948726602294019791834031326777305483864298370500846405654748959161087059349393694684712317941649139505905888897098092760521276270970733790046308420468704187520776622303176712258894653566044426877409332442886673582660825246050326734938575500335870403941368336011459896345618518595225971764741165933196135019081826781218155713924860636083394534429345837012050196025627239017027650447954130379202834655523778664351151504258460796013009885216005255253336023727461872020776647380736985514574660093671696167537036236974099314267371666632884071970718216120047993754808527002412467446364163388469641983631880045359174202308915361583312742353473321461950216015132194518025274910913477934261816968488501184394747381404253601915222817914403284346241304781707086203975135342709079053242142160034738595623962680138196910289544942572049957907231287029548797633029787325247035608414123964524172454841199885558352244409859269705702116717791761521752523780194307590171542080775599360930417148325280754512679972731415217089361215614333727161182039824641164909205895780052903175616674297480575866095004064932982210859796124103057889835075416818636728758527438410140813480787786016018719158490988802959635342154211543540025351641649203436696058687322841433413177830232359831259257745243117462130217349252986657016554890910533968072630492610576413352977444004929022749611058380928335901937133301985412701708215742628652310002074052739719099972317990956633976111147849438224158445182967987910530104183682903679873314116758916120788268209306823327069260476064449231870004684317539527318714500966326707725820439687834983580345144274444234171033673116678968386945808370188085450606625448325930489609338645917560933055353678088245837025450961298249822521106811562106815654806449214422821756787413504793006895547588641691173976570906704262942648955381866472810741700681878435414582979058697799688976049349754760292195659984289741108192447889064748285742557627992344198336724379895963889384640506790983496875864446478690831117143033242929262039172904440387863799985882388742217682305793696659146264802124329439461440899745171486223091699292352377971865679401290099017714238561578958393830877288928921100208379520752763290295240197591691909388663315894405484786362702237575715662905607083397314871488874600023290347172961053807260824914470388754714367880538161355513397371923553838710945201215622471283311448470119138660867502588830857355152152534297297642229875598506661681413631246533537191999810655671680093318480407707858859510407652844122559284939079828155667414338688507947526130499700928029257187834411444280946509463588778108658499879916853572827422091772352763094513982851387242108064595843255446495412805961606106602790372865878779187444504633643685664400055541255039203526598644907875892170324215524179484361690104542922933721710344901025018254348839329852325738866923274164376992921942486279788093867747691401855306483315528049246067169559194968212168960504480001529538474218511549622974223077953951403169369236221771791384368833438633798055872430971037347202320035354652789221180165983769495944843638980588867728073950609732283569129915836583335194860593715902088656543207768174274637559362457948577574707597274673295226084607957480210077061297035645704593431434216674964644009552646020036661311727564509511541612207866162183836327187990828100527036894514582132135721881356328746700684528434032324691642223637651077944231590085692006973568001308620504284709619579685854855684635861543027510804306030173682981712574443177548606283196901170746088731358137494415386817168724370250177197862673751586920490779157032311685328359853068305983075229256977051586127571563707872414186050496339731463842152410161077595376263855150459021997725393784878606013672376352229983405260672410482749917114101062198199199834560151195388501488134485175486636795891263822066483866067862896044013415045493253721834928775033359971572798816379197800532130589570019661155645995943294196043695543033133746686538859703453727328139738897579639575904714027482353821511868027568247872284863521272968121453188191235611144788902266239913117540963230513832190380891752753494191345019983868822427596543882004557625172667731451504558905653102306430410622147679678011535477277308234649034753817509841727383637571112524397710653341444117755819800049172673748551522412996940829167871861539865243953964536347447712310815005343072841774172254091272532861256399060327511239360719116409284244718812848018219771252804310477841756231669700065639345688583925666413035709605735581577178309229877011075792308294818279700614459194427868870100112691035346216207505870164844661723668553461400813317352950642315505431741447676102949742760704526486001707598926254532991997973209308167509018994215677440708933421290988650614673560719086285385270214779404128302298946153065114377004355522634541856033648889394655240111035034744277193002966711272925538401083596350544407032946039593229190490890394642718285353790741079006348459948671810447697899056489873810064607107354564180447686487756312408750646598385025347940358313490561567808906492935380962976358131293075538664455905530386008230399832478697444875280209271337691908264695268478540288269709704061056688349974308776908642573070585937036769901874615208030792830304210718532803597381321237474747732928362696193104965200226556213431959278168678499158779639798694959075198564080222544978730780611994075471406448813826513445825145884669938096522528055697279608668925276450181354638129293149399492187416961191154058425122929552215496569913613645604526055198671032065535207600181645208005509328877731589168145676533504473027623753227619455644715393044679850288231911220150362512322977160967515415139517614479329178405654985519734126895675611006409707430419127995503568191710126422089130050929234848620227571848507424881597385311963939476775818273234834539947368729222239736765504668347018735534791250708110641738325911040665143328564861322853440386608924504911203050277368947487002493527532055249706122180507007892713017185877614361808029291196600646946721249698510582638061847256859499786527004561179905455209027117620753358859548806739303748383030985964590062494322828732699876533548970837844090431281466072686939073602364050641771829711960727678269313477442355041494687368856448361331910225289184925764043338194357426224366904062222177847331715564108409090260005589358041926241831575006061905448147387631002829239705117394971738263475953365506662921919382299982384103365959585382868423965008923945803620518498934845654971663758278470046515589275617200180097249102467470538899005098583450983069882395020826383987972487828031502112711446819983212922718974600666648328830737643389254143609043735939130142310738111648474273977943531308278636458128892451384393048589466834229542307310442016016249472956052687208756628922591850662482035812905948473809470950799387455849009604668914019265746002902580905100329513397193139706189549796486964776486929971120671681637644333690996764682562842600152322473339255649321412848786600080577156613573546868254441876824807262729755329040523562041372592027265391174153007722133643016291580294274656311812921567461740434100963804198318873918250020593071682399238176565758897459502159253700874094210295936724093370948807836534992877133117564040752066984637753006332674411313840786785449283216864584933200017513918710580857457087007749839068617242524688182825166633142990007595845768471601766093399165072331681397752700875633874524504376244543816082575348713377273430088426730250167104100756427984651481943477124412266720696286309660927544479108997336949561496380713883254171027355376581221263057699132749528976293621971361150987080870572825298235967842149955111681264877986872923603859766410133479496477881154295414178244031269752658839601402724130606026723336424899067244468288091648523710510904278744512773353480602731676850860741442795164593498459474941619457575141667442709174784456982357523089711360062518874119597114711355743597746015610507654050622897505548974337466179780614136961289317892389385297865340886091185133002292148707771923993637598299513171064996082110826343255985684524638831918034628497740408724195738552498126462504211585984741896944849436728695914637807270562675506192618775412690244163407448803032139881627255568956018598844573361805439375897997869598333964501759269236457081630222124936777085078785082327400671176553763759593721048781437616543117531439428385172998236227274434295252705148528532726328555882652482418228453275933501377239303922312376164511006925971986966320105934496727030369463749279732368898617701779247009658297422611816400623426049594318181220305346373722407453214990052082261182348584895977902297375739249716687561022388964642632328944450675768676853055397352747639665749273503041854793751764712785148682222534767122256204141342249506225196415245387560117901812693696719083027687073126138374185302108765763326157903878651134881641284035775307981352782869952007768753774603419634277563642150888371829306607106940352066516485568260786158393620835563949150350968703768836869998632658010551343026754430142156089744980309187611255977456045212781810725596513544849118305051638207724387634732550407616212571141811339817738034609883720574863335416139097774992090137438894269395389403234748077113984924448309147409572074259366455427410730410928244504698033193930756956041609032302902771293207632288041272651621908411591050548702993026625826537018158578671992394490873202208794528456252308937374998587039590828974405809455166588987336658068476656841804052316690967607224603334807094283855077502270931663765560288027845492067806843287392842012744644589881666776270608623194101312215562512605738794299676032097269506987172506560867933862045522512578706035353982796070352043880862594954496857503800501695933594439569191095730644094623006914227776830676609441218747931018983260098007226848663764271585826509260280551931759169212956065560040387991465077448069924643737157412973730663008098893691229671996516119688453693405312340225779382567300333843964318057697497527758022243398585838678330208752633218983815050431767171927944235841197315536423980905444024190171087486473043321235620608804865752961135459341629588193254834364132250441011370016157134181521587554764486988418299385510510065300575925850204431135074726000309337028560676641488169882318476602280309809406727309163754361541607478668511794405977949762126654542296967254724684575200165693633504010920007548497486704842118922570743028601516008259310061147375618146412854796504558126599221048791877684837492063736080061182674972572653317248155546428206589250924450398603763567728689528364055277579581729170178722940797466663722818081352889077857776788554749128180936606225044994548888400225706145699045908008666165632955289942986689762372108132527209087803643421969922410870818726101627802918467922729690504969917872273548802882808885168007692522082758599051667301367677206936369763440547467512813444555104061305692919662804572123656415323251526108992642044566617588660992415621263728708444102771613723281643600739248519926567651147005243268710152608208899492431949876881947541929871403706011651139605030406836134838716600744917554065869669339145150682752337359767574156753928715416838528727172622850596503841803255673612934167795672624584168420316660941886924507269529561165803838782086682857265431005105980505115819727387793191099833150473535420447488344509868928271427278956199877708901690866960958796134215946650364341672060259083391114747791094263131124761471718490278104360300086071813331422275453995598726197727299441894930532204443656739456942131854692045358962159767399949940551095325579970642874402867996116437311670889695858079684924796337355391531634746780103830127078868771418390495059048239189053619205828185692949323098039742279045880889569695415810762418847585566172077913742366626578808975281638076180616048075919462800821194523721860124557872989908149983089009460430474298123454410762119391925662677558493292447455467983804952493596894148855400808805911682127549502382629938410339823101270889997207086370424478417448967994283494607713031265314979847356150636084096872439976546328044587330625802895104806632387719010655951532588197765085793940568414987240891034492305581916721492694745372126710827282549933890005138133159851806055675341620601754893305835807061044261438003712540644547755570934395520762065450689833191228016507926918485705010747064601097636022637236294130184212072023704630449330427364739870798860355055269182010731728922021700975970761169651169951848894202596986395311976155612466008682885515281502302970070543278850858158357014556171437984125661299051549875249657481086551866757016538425268673601102536599894741364257243636217282131501463303307262174827939968531496379420127330128555734783655866263984312350388268745660655472005610638508371138608224545228498055859522630347274601855866278980895876525066714232539915015362190247565738551209060508264262946889439330230405293353944853818820572277526605846280534851602670989458026580802189014860296118196964139682095041596448634229659718867134906269977067430919760116407865612236689912955106460194442173240695766016984824091265716885484853938674448884187841827151220857842526782376477261141293893152473545763147950597904827609525048933543499340941284091158206093907519982698318377465228666708141397007761878592167729262389086659431548857933813888461014221190766924654630419141782556274808290423745846933282011387314153443929172171488654158358833133365560041932348513492237118404187838309434517395294450128851448355719583531153650880308824608185936975616059178323813574575690059633901802116667802467789264601812811464166967362021635234588816258380482609279303725626725699179705084906619729372018214463276944157222396964150859317284339313316223518427671446118546799186523641986553405900722543079865684343312470892798671207329475017535801775564237408039134549717605100165649855914859014057394120400204057321414098659230629953830004340929801756404804376868510348537912368217669475838240172332120704732503604664418346473579928161972896478827459989774675714792102738015868872798548871302922624744634375751361977389015014449016564084041278088354323600111983274939461311997214816599697749914592757894485733335757108270031753298461246730720540296070377957595327659269007942703330070382283318279942379103472982650671171296282599721314961039026847484554246904277886205652059561918598201709100835546240252060483149352434359551380292102031418885831771351325526762996259437691439770227790394706760556006056360053597375260520204542839557532930094294770369039131787037853672566418485337052120163218729588311398226411540969626451288015449406750959810752472889042686397228257165844658721384803169392010546749168586658174765104563173201964642731805378861133287227957925564784595763865747962668203345496489634055468828099842779668237955228939317598287732763771535442431326456053561860856564679480820300208280673335710453421199727707738071408702805162059698732610636131684329879342104308521254825473543467364418661517782184458727350166897054624466861299453314502221547611499474562310588284964463468598599581267915224795959695963063794841911594402201854937848267887763857272855843991510192422907750902104216147370722231298063034453506726317962620242478116154738808508660481541938510181617184440011798827182238587534505180502333366497350022426613556424677295097549699721767845355896399282040306036068254914305762822908279799661161388196209703724578254784340177265402668249422213160890111347433900377105753741914590602979040820978145160048119534882255237692333489523766787032099954281750179560948200334502278685468236180701814745040311097584025647940849517759385646534657546606016965770174414445657251590879012881931443626310820489253826895483533905002504067413214827630890321457161156340949696477480544393552377144116931998607798480802390063610462626030381610105654415958731998126533400679829740477529115725982126494633620790344599312069777177630065240174250784492431874489717853963911437623643163982292951121586773980368834672512674784079802264625728383657642412848329966777126705131774777032475697018827772669839868742631084087212613069802609318510244891865827212103125567581231846994756510960021275443961370027593465103305485565086431028332416760627141605504915172396438078418551280721416486347222295351872908139353036745834124886645428209906073690526407258036948764874537727782559158346403261571938990678733025221040820002867493505948683220575861283781305904107731031111897381766019196954955539434961821038720273415611517503871358873053445112943146515515578185213432506245922370052836860349935313803999228250037960289580270727054154603719415725212414826843080680535703016439613284908894351094312745055681970961205523564031823649637702057074414785849120731931997953107968047857827008536201059832377424922348376737184447004119809266303230169515661645857633744334116790870183012078879078784397249947879875220514576139431480841112797607568457447915305395733479340293501880494637385309805404730297520836369963706076237060904339888011455869420434810160787876993577343217825987805024763544895062435869090268859366580481741945117350431198712660944637914650753807722294721290287482691053919945632044005144129439090061192683553255686667989038720532544028737715591119007091394940297072695302831660628363774311455629481230986161793250134485556275843450759522000285440192243581682852637967932060030049771570689250238598004458499487957517750098788199696590080510671226453367351168575583701718969858954722179119183363154963348379050576733042926996054651009291537817893760435211841184315378444545851710563891487486489353762362593118974672153173328481912242773946758147692597917754349781636083238376976964290519250475147316110384646515493057763842936647711256450102172643242143561509260150490436645018112816766719305087351776423593009026698217941024113122693806052412394675938482351182212983233448707260794182879791713259071339802976883428040895355481149243528014117574272683535003473835736412492476357822271533793365946230610417057046831887328663286776790448962924130627099146408200474820974170104490847711563875624406470288475403769442307886607568731839478165683467930866748785299115070700403791962365574878226806435615724769882744664659603359573999491195314392592561618102638092153766546500142934304794829431145766462414218480791362868649993791845462639056379485369602057515387064160552544448426260046997895590911375814168821214916823903003160317788991983001731188265297821887365616452673245129236755263320395786499554486090115848260802013923788063510368300600066532352326394941223107317486819347592650584964221821310595720905326511064614077656928292073834384495342065901870023438784425137065915137374830359903618085216121549650919836138006474553953211841458087685056306832617339282713564003788608786460527730035973099775361512956274536332751697310354418185405896579261233160063735073359807958220227393786624393096648426486241007101060006948107189851582105072185055688866938703209155587014262816782687318144881342409334870357994870106952630015086099349178166152760492969871448000017613996284564315271199856859929338905727830436028850836846708542948784461719130137296945453254071417965913807113612020241361322090750541201234204432345480831006119776049831706425278159771260092578952550674734681107649067433894390260685719023813449995033023566613247684989701954581148696828166072989667298111393463433020355380407958923502482469270880381369044386500051664797562548233839932398987265019311748252654904460806349822942201137918426055013609148292839915453562358038497822056478461339316235569748152873574382321970331868751213623617530100939535395820910946577010448702254477364998774550729531638516926656784250656322064663984225379348973118475342173911260726480381982584229322435122420271162729245580721660548659059402645769457263755438813535172031929842446137093954436282946101433120780773384983774455667529846300842662586464404098340227235452573014639953760154284415700085999194141611155463617315047060707276746744478810114898299473623947983628205311924193494815035121024907828114308677927384102823666565203704187500418712670222649518457918684647470904475059917253083629520718228536116655474745629255738284100470235563022692719314244423447460642179682513537166385732153836929583918044032462386177942662208851323654396883454733858421510788194112966679568096051661451290355981368098281412884418002618820390537047021745805098068034444557566094089286337759684045471753150409046902364417848050208546468236949138851218950135568154747802079617656980250650927123969032659362248856933738652401729410499001597206747514040074133881427361819305222195517887496063251020793790393499270542754702226467440975479388169625261716837611811087807535994712194570829999310848211448235317988820677195992378233022545733570763444280581069984053032154669065565316237985639009134828569958750163504065034402859505548825226929912905916206176703496494440909810192227931688675143768054179922789755359420435487750899968004699806051051551113694255198704238691298893788365458126379805220566112670830175041211662976301473748444229562217173987470089726175415428733352618603043432541952168649736707788338534896425290055257846903852909367366292361982640193456371375967968042427070905557511674050599078424661980198759731334221190990042435100613126275500717125022260284202278020511123853615345092847419587510412024184292030968646720505508353379280128018169681670928401907121920405821582162434942099686345002052990244748374666987633499713665308448808435578451576558989552095576198895680659244116195595274183225720224687804090852611092470269777228819745795633037438418682061600453913210601783412676904349761563415532913373937140126165663096178523314110235433418950646216256230966514631438349335151038258974569222870675145652841040149115151082960706358354825228598016607489667795527506598340438211507519788595875718910429978916923426861039277262239774263036634003180637655732053082828244122258948324287812994723673886763261070870928855441995738841885825716830404000238948785429789402609581095020626502677743507357764507641977856313229084660730049429072125782552531216890103696661939132355921695888821535513337785482826576903755224030209098678662905692698045878420462994794073895230062478185513928224497923186793603852384932600524732706172804656559498426051384243466070782468114080128140913101381766448190733738366955980024322054098335411544081319340124714989554580552665270778644207769393297375187904674791994094996239436551822690396272966320401223480949321815931436440342292048278468666276471669831823726010649444652731401092881235225739762785066852484729057969351380776972164619271271655049108400527964732032237448368308958827528494175858297398889747285459641576324808293651360326951273894650389751314865500865345248542087014495811421506154035445550465892614165001181329936572221669371018660811572339095045657541918667203865916327866091343526126151451493370214149659439442175792199209549538404128659716250603511130702122475170930836480087958286766419618685248486046759982738644164038747670203200681807296568993350343109971781114480056034861591074077703347926681374208748299721513453336550756813912827001651314508939437246508734768015738366369433517148242083720272968742564968334287920970690180744285068154533005903986380971545092070201822172489977152741217796408114331155003210243676969428995458377401030485965562162190456964372186836310888093047573061281496688473676198203438743731905478504589841798602408860539421789229670775725175253011549462427852353065515436591839223457030428003130784380502411716530807633600954931139205233003007945398386909669891948247515700825221888708027451144196239286712220339364166244612851439457087744471460407661531809872444449504248467598151334159857739623941619445422447750446831776971792415754900918173180875315061145913653889075701337371416949545975341875489557906299402638937065896211348540269260557631062809974600096140344495768423669260150440201560974921316566298495239366236015456059195565274841671090499029321940668855215291324780582692982910081457255206459702076771564431338278952874379336069396948040453720426893656419947971283162436231171357528443392311048648444875925514374776778356180316811044239668609224241087880570584523921718845449207878029968483041526633299147764049639974609976371259063951298168867138099948944973898340776777827725998820089095699913406200650376847882738466900463258728660209152338452602768900365229674596162137050009849523248862726613874591947268614766450761185485227374415679805205499577893850283244229575581667465726546221629927782755881322311163006577274702056767780275982965169546282159114139526320049160048407532161705077668143335725252358332455503205712053535001061001587484544559034419805398473047194903256874029616207880374062066572572806276296116510484350255086843042761942316403511913712695442039464885802038473697368728297558639226803503131852544074069029237661689293006257094262733948072877304054999431704205829792564314373442226443086450322175410223930276376491002865094750023341924448213400983060608056974312772737801876074147642896546813443242782564702978199346890545912476885735670541568537763513226647976185228506540472020730150541562671545844177608882776073095590839276288384229121132073198469895921966279165107866087785312889798314687151262600610602677263492615542870630927918456923410657168991464429720784827291946369183664263790587292409099101575501455872691186565709070516275501803808749347910799484171333975921619693457890558139530820869421006121477118871386707492911066499688090734615531916421902032134527554544120018545215589992074544678705237745308782116143487435980457795645870103229916544867479296487468259122511234666502705871375406363417113274089779995108026567656284715356956613173446860260204731388058762551022166128906603152736131536128286729159935278168820384992281769504980111373194603167671593371318808035148579254195692832810407065944272408832158847653657317673083474482131268001322087984898750502436013365780099413040331925427228512942006121322765267301378762621779322812121419175733290500660168281483565880050236907946321140561641465634253790014529761813104665944254086053181179088028613914584117672789072939191689348963164694173806425561253471707414971134880133393698010739699356898529122222401901071081502894799224100136600835665819819914516400964703072992320607106213462493467095362601910519580859004250241337869433473759381234850944180329672728777014266439653885389781656324485131914713865511405156172873229948545294089753476702000151865528788886416629243400666441834875562222183605980801045794845293387010097620194034555525813489853701609042723810226283916393974278438460895475905941844655946987580880517201857623490930120929991248231531799115136853227965102644955126523046418925872061009729485290028332236109613429188074705241388506259561797691018788575346523937534941321750202181803881939590319623234101046445397010997574670358950199321297719587145585180949978825816904398699212609997527278485504274554561275688955241736989965944103908213110151008515070559241157950699882578744696518151691932831607469880776849867742077181608473704567197621701730009432550253351648533319602176159312740255208963477069181123469075609569093887151994386660417338094097579790420027979214962065226435940898578852831654402283093179318486121670891739445304130749425166045614109453756457172384990422117796916852574176842047962150346308252549383585024013065841840078882917161115405263425714744797525602416917405196683288840739689297759982560953331633147648473305239337637740786084495544979938250506631326313167334058303411981086739660342847912334239982435242974152534001375537132942515376551010522686854665327460108192423869751102347388372080618486475223415218582619028370833903609289390935167772544620616407002104836197340019919745705736271826495978720537328789932512190475533950733004966011001002496649510599639523537762646897651632870550356227655800964764085563510459470895322523000152932560298186186646654703535106760777509300399434028842919677604189407298567193466245562797187757432854772169719814032292075524822209065075681388203040979213375821005419275161513085332894360226655222391276722217580409919986375777358068258693846307030125371258310432291549416706600173225885573594434976362112967729099374630549925377219660784248563788962943564144286223346988034917451032636986656888155821618354718046563814793453150537074093280526543654921163489193201839328709742662571795340212558906432915491806747238287008064543867701121884928875792822032257953500615461808596724739735477068296906694331687173123537722530481164950633073163459743738615654901735745973851317103550389487532199075623105608655058303930583177532647995272954230790943514474807932984240801544795098130121476189132967132117940589973800225981515411520523594908134610441071378039667844143271259690201448978159210210032910942004749952488519974531594845566939674099284431433966733752999324404147253463076625717687952209344579195766693126667107034397938975587841323659089405825031433010355141819374150875469341405713821707952651275792953659449135432871573496533120126574715092097437291166085715735918269774905895883817649580017331276658010426457766578305498055995115245699962184847244341709960660010270781449580466649275939596558388158599631808016018663119881753529611843968304456857905033186584167192629288385935720586169097027546706849137613066271692429456592376889303064540119190843325888951442528947755904307225569694688943563861406884552742620557293173263193344440898621983367133040019908490107615315464814735798320400461121152352948068274527019707898923964286539717051957402931786207547863097340196902735738060724171031889185437023702151972566994266361494116193072867982521598383979475590593182287324934953264998314235333153340635222585820630570983164575036867684916967479854860093135932055350464574016983464576594933564148316086805345102821090600808193766632474350620754000983837521809631436208912812166175591314731796897826502004930712149233116414695635342257661093566354461101472106596908634596470908283756203600710665584087024788336194880856017291122258001630021242496859864376009542425302542573788331175117216653998387991213712514899380913665701498338247757717573178469942794086123775093343352893411559794456739960784776921508876928582433864265024517502396785295720566730858095253855465335202402544166484431745064793515989375523217821384348364072969605680405731691062146381792737137106922891775329877134996144155463791732176980267378739201297557275507042521189243400666174238558463247300519881568221220371999740598220076080900751320754644195019759843118083969971860702083746313851561041447850583687088069185564350201240205303068165527416521889386265627080673083733653049796094809776754456303620978555893063385860051654148518144584711888384227010259446070524499283592874216789660437619063056318118343656036840900968983004136337549188028711066248600979653551129694075029782756601639029772284483862137534447543183621534747490547974796529826831521161251314344131237374431339687769791966918284142079502669990764455047527561610957921130651503339425991793377006818104577676779413149965765870033306149431095689855110558184414769073631974745034571304638633519088256711358411846996632410788574054753190965309370069605197935551327901416632040596703148080800713663373783906315808820765789020778643407055890220258629774497701331784612769508135151922325643472055609636615872982328555334329959943913070755584176966158550991408350055477854612467739196127474081156231294858601878168661462340880311545099186933076425529740354132009075717749518998342217490131965100704624630721834967180694900511734452949624571173824364421364704075284744111741038813698073534304603951231579843961393880546193478304520010778048145439559695629286414472675650375148961027537854218269480863309661037975885062810063759810012837781905249637911800611417198544976564842279106832965066284097414793175962670708715130191608035810684524368412008605107262977586343730576469770058751329184945640252521974356597269736908256354348789489752870832493369222158484904746547528090037011419659293966615089645785337902585309228978305369354490045455900914399194498908657521828381912166844517130148595921026558444925383834714235190347786278160532098077209075575057812238973476211040387999700222438509892649966733830324009287112612195075884829439276898671603651352490459588323276717145777750120862725763810176044245828940037036886770032152794793512339717286656322815912524387804166204982254885664592517013506088168047180350116538606358942155657950658017834265608157384419678471695826901716931625818589236106722434803268175913547796218683697980039050149993834521317325621440515980588051547900109205335600873072012644612850110733384484418957316794977976983079793885344408020645704808657545576570559634864838482523458911273676593378532859142904385221755219112961825771667158578707118205794250882742960217836196428581920085200984131572004486532321066788985258525921238368797583024289062088250198945723020959701771338106515950298350339145288487698050663664588945829051126119532205292987693764438992423220928300455162151857166751781370316905869261169238255127448192934776347863720081992858777479538404500581483747277860306248606580162523142073447370358375937184865884864039340287196068658742109489136386948345525164507730321388960817535728359611479379730778674886579252125980715682081215270778714840515248211496201378935392739814934143431693716301692554863352629936202169576061688537178789949574936752861032936068176406203313229570549478279858185079918443053794565019874444735669096312082611836141958116611967240212003105008822186217988513200753994945602338232251680929268965178753879729748482143384665406428969267146244589176445271185759467191673030411475704827527756887157121328694542176726564387025640524387399840326786911855281681286714301665823676210598784280471707666709808085161444564111614152533091074536151232662966768303474515216931784483152311687714541131660580962751649128710910539468133729349181612069789808347822226725610299117597181175007899672615309045002084460546308336189024832493126945183902323531731818388173035990760728121151233685409437779566345599402066939162018622932795528985793567700063824226560810000091862496141386476108320892111032362094694357500767227325699273293017521210231943324190172161051745732235433112743701308123628980218983621545455795173298841803687915333592616603284859588977282766203412214508224171082353170202263373713173649621981827795568798075857990967113142937401254331452646032381141350387943278341140654830820434777944436367464876080412574202028324898500737456815027101547878823657390417183665146638203294902852598372509937107334623006039565209983929163663668711214865546481253937395234458377436188656388158103972237785843243895837669300643483712898015516730105673706393028240857622115716930024150949428004688535126028128919887730074687416323657494156488987665020782238325069298524890268844227215046960700654030921834835877804661215298025881508771092079711221950463907096833327013619423167581873117387452016454034580158254330575850632510483151385911149433223723130201765461865628107245634210413404690775237507074393450326647246860577450041837614190951039009295641034945996170449436183947639626179031567460254403577262634061919859630293450922499070926054020878212240628594023264596428423218261088597129296122934561366485154499609037049724852669064997951392098806659993851434366807015939084902356168287146665379926385291634924163651960464753941797059986518590295967603598777272116067262670681720405114141460417560961373125384737048823636489527746280441948835817991897571624961180145920384153009671965645173685480623306588426636555278526713124783194961283073734980012100349756551897772327006005741304760205819952948904643795177018715228861217800703676891403155887953416244070682349674977776129987870079348309949838785976526471119445333171622194511013308061290620097580952531131813226498349803807406074010899143402888510098558274319614896969530687460682335278803227815499290937133854977253986388993262827788393384404181692064046076852272887717116340186743239469234855821345715418139964333087580129303620184414325473951576598643169218182788176261394880443486444890711164497498294824042928178210238393141644792923646281747973650224937915139769829633315127781074890714259756287199123498028564672181135311959743796322055543665360415244852855195239961415571001343673870323172859332325294952018164631774440041569517712345672653417198328643652789943041513406441536970485950649863909754939986559474796723831428989609783623131910264419683396084132980365002338790388633448398193047348814781231784566883699188713202578776669071959666433917670393266127722660030492238451631012277759914565270733944292504910635443195879073484422767408908406009102421519544544755683207341412026326184737380916244537851876151746304919518266330079776778392937738178394474025571324392713550255961069933181415879009392443857063487359580752005569492003219202136404365981965373957654334992348950026710649186744987603260657351738964520320947251975843581185042913093764619741042151729528149713912626050869531986241148750202253554624932339054524723247202927752349184829325305203359554894175639226782694749398055279835791355627343867082546999822847907477573124485454091931551565407975822592123548521963269012442183494946236744096780559117964221476365748909364758248080091457343833455647223824852414920922141314010651124572468402604405522783032953336322174911866457964443119162435285580200384711945156871219565320488904986737503533899537995346126526544556244789865144199355189122088151608553331930044625570737470590990771814978396957342989316809577856878196168342805078623517919214648942929395551898989043044361023983123547185572007890777344423977214945625898183054126864134995910848163100296574844983971774471370484340767314842320226273027631861623327249004435027689146260837961014223825824533011751062624593591030361124338443321067381259449449405768928473412272952932879301713610030559344688810861975340580585263726625031343922685821736867549610415737999375825665454329391324100539352324360689448942127925193309261734185456219371133913890470143913220672847819258873429192101145712199307730498598216800535011445504921954580620600951752021129484053216255735190986689905715509842626005477192909187314765910839922798129183356389620993608908125303937541946965423478985287705085095379450298622195707852748802861725389161985755212193252824682951847830576124563435397851583014626135022740673925821636529379599473582588218919921742289482050820199677562408372224044742771225495885460911095528731536994809781275408502433611186998299255521600670999685679851891112248196156996133499360778721269720719088921261929995572715954248187084828728623842901937989669588542674487177464276319008747205612693772255158158615104423401561440737697326990696461182064138364890336206936570832991589380722788006143621363298181068943839353476591423278304189304913644172194831993471547682240337473941968941970522836931286274071997014000785737782053381409811309266476125342418932885198928151380456954543043779494612059077739563909758387628797618376815482306665775638123247610957104846779406246149447043126777412345450363909693684493829367516292441297822015560867502909983550846179975606511660370161757007873023061207864673519600396044622076720470136227987129523464732828461642500288711151477998642546965934880127744748485995327492616770832783530634990023396198571746642469075399095487810067118924522157353122357620674128945892804394440006990168747430545429846074915252459101949610453743508240294945976778098491599065717520048142730284134628082909453484342055995854490602550289152729746706735446048104936232958675331310895061187914394405957476582109142224979157106607307322998437065684704913448754856786445551363902392885700587875501276731439381388598132652583787793339815080592690111697591088315498250036922880551867250005220894733865893171501136129798853646172767178487552117651779076712885846761332086553231539536297400327357391920705246554715643570717832793757113492254194426896679447504494163532605277725778355736436671801094713847502211960814513151837978168367653857171570859859302160559509842876474713168489667646022091343785759444560441439934346876003071855353608730490985661432443425158194316137809282297544015954241284486100660115587489999791880037467304504505463776113872553086598792402107103457033930897873281383491992633756531854151867906574719729136117169464385281949740933400445702334027516781737446778848683576832217064411949509792761763104296566245128233767376035828216763685605867975522995928431013982485489702069657342959816940625938609940304318815347014042930179276261984416386266527831427790810448636274268295234078814396845098796549792732962260734428421836931591937949804138771980380271956677899231511774651766311495000128217310898059067177398356537734883036795003857454790513299192742247931737477194735283559192782485925408058795140454257268862585056220479257522982816687042492809286656798716252462885498856929125810919511719294217700081504311413601650898197060383772233660265968752430985197066374994407344637829519650493254255005146757298722006824808913418595605189852575826757385710848189656740847642553697412740921241725332517132821264767491284196153177834155285712307282518186423607319445634058570885455980765721216786035683836651510798483401732926651357182976003200201771307789667230466200573201163709373406065743413748269785090136218712410801698314961368561125372342472915234130836709136750597100979140957756937759218596830569808375325763171253767111258328728750818280420903184897318691730808890627291562883424893828667480847450396478384869974540938730131075622762850612394984516508588509072556069331814288748299962613145093735358927442671765028435318369361597809315408152512706192035037185452802017111185694012751556651109043571126552590940352235593039172491682407952963956768448692516045347810304484519201119430534718127052773593896907237194815425634753527762670852466755826985861041427827894039872548716872971422953248558064040414428732234839293558049751706841198808224684321385651121426216754748300236415387482372540144866339462775057351227112955676276600256200860766643042713722681716311521186985353108722900182370582440124531499094977921687780100271661443332255256677223629008102813078121840623983813020496132756892125058271540415452796376655192939062979639874360718656103512380737337531205282775534758645470930229356642164627125591825450465441893645289835988273995072766232307029463438238132405530603288011001053081221119615799935168610022889977726045196805799738410450499864372329527876184210675405015118915704334030848333077092365733926945217459882160390761974473279992272021338990064115865660674290636528164783655719612142993275574509465852305282208231370364191401819718593843843608392250740762448785514274835537754374923262142140228306374191090611404780155142983796006199593338687080684103931279618892457480805500352535366509185125779456761087591590539818616588944094481003530799791016709566415134051917140530491205068141434059822997921869178824201180017514949611685977785326430771969662936180903463114128637090647327699326059925981353869192614817711916408987285675040920395070865562680008934353935582881517876668723038835307233232434331356800533790095738435409579187476177513030567423452875710893782467241001145096230118536152537124373382515353957752009127083286761727785388715116380567278216230371287529957411888216749201288037432316683632983141547231201227169673089666232326245980011099450293386152242083870209989111734363511282160737993798900973421186466543416005334142135751206080360462553369568610099728632301964309395471106944958491169705740463933555189122055166368229838526761695839062529327373172619178866150108433403023213294847507634441571621777507985227768554108690844206393510873523404729690648082527882530897167049832494979465699515231631015029617077912300385458923775882984960623565741511918604143456123090375062750361785734957576205920860082360365401580980386301314360904246561913316522572861065659758991075430918965677475228295038912767260147310263016558189366154517525154875246523231910844884572298702778676275955299290460851025658173331187661382360069688647533212266866266001074261212700208233762600887796888378460498195079171929791198715589657778960399337730369537489451347863553694883649299320144491495786088679239431073543251187543849840444978167283040023290647635602632126283788500530556113505935480162036501227550983010141687504864526097282164295524641464706161412573852628896032190220924251894506293614523584400121823478238685800850236977660927956948134908130254659960287156049758600584461307424069341800187115438791994043482636799622563545697731113949432474633681813147706106212156429717831529170375305790135911290737937134279083548130129333173083157589618120816583099403954746578650035782198403314891053316136973908793261366199738747520045347246938756882575535113456814641945661504541198965095647023287483256343792756030462349655480700197789636668174705683277673918210985014084258921842581628956862861345979796403027392257526114246347846454332367252287061857218229722178753274946317464538077965821965540099224188606049591915990851901677933821657097558545463285872530321329513649744198752764417058540505746456798863802249916861505004240464004553103882601606177274108158261529132493891457290923159351989500284721063597579847497090267361455020781979537374629699614157853403421537872068897306731391710813124093811212415901925758970789749879791182493660998410820488142253330890751682370756419649170508610978861054233412859594818723827545740543279076699841828561800731843829013697402332579452431210156971657161271429616750172283019098103421151865226191598083746929016015517655946659118646232063943523671424864518650717552309749106850250160278777868578113396612158921148253271142208462094241720817986964831134269648448240300490821691276707928525441406377174030029631062489463260879891772577951561155508016328557809409918579315742533280936793983369496932429887756029504556385327040268723645530893921117057232381655954875570530083944220107323057986066243675215322152196500609297218903437529266019475632109863546014880125041020836375806225189564112934312915225501613465862616890288032374859945357084835821090448686448327182215713272341299154929565225393349008281296345360359584194486990860923862329601176881826583007369083795544371657313325778944083357793728472819176678836382975819427121322971768386738718323159026779565698821252819965293949579357819841615607403761279036002587397260344390689540353830181404577555195683524776324547651043949814143053224376069814818150869776148613287836858368605543753390518062605942953965554780626833966388132436444774242149098813155783078573157429077321538452682578598916395643386635234014237870873372816536670128343594323534994244002211813836235433083972365693842953316498070386538160336131949284753521456531413693289317669168798875013928034640892912265158234894461179161477735385929373133063826195346917221491361656797141699949911289264978906583211556136889513766845125863289798256022614871863713817598390182576095045788255363216649558063260976962366273832507643126050276282813691970364287523672500227188195816862761936927608246591688423385472188871192219010706742095339160908373490125577189816833913280260988514012264034070790746519244968319970634841918154897249553714278592088783079281944752428695730627381121909655871866487943056411196119610744113501675790675252348283366924755585674337901408006822144565988440023842870552037968576559775823040666505965589202041103398687843580804386257765659504534272080791180209814199823283260710404674072586791690983809811319711729342027117545810163741843230977152670214080988011343471820638418761938709973006266107280072757826593893931308753472081004430219599495885939556420391169525268866467362779745586393331859416722241659679628432036217248359052432976188309289641104711517350580417585981855626186398599457657908621743577448404260728265840589931672565528047698628623698092471099891167014185050342707841075143477935770173484395628102833268944035577833353344989668188335574651271502768037343499721172914004061100581408497921178943902075454996441005629623819436899738268123414234727169958667309403015230281503910349413561932398370323282536301077438947225074414696120339011788120964569333138532476807757031911999013015177606473305275817824484626261226770438440051398203391441833956231464859420775423270351748779967932818415519065347141296315405499212586276418596201519310069508836821939626574502615303845934568660154906179403219251259037642826559170030551373707845447994504355646168054711091902367935684260651957607841089570032183934821622080216405270187386917262684522563477782373145298118213982334214753166752842908130480365012593569060141518973602749406286394693984525446571256213522542868253213186407587464232581629051741363569184947888769687450354333076053990123939339383618461679786280727975356003768417343591038927394218302769950287061530995078017654779627794307599958701108444472643781693048094188973392478528098192929937111373047174719296372326141272681919161768342522788017409229509786529802800329555015679006569036339910788571823270784445886381087747103220519179834453054185464169006674544673508646630434968049850033022631849530350423739767912164868003233288199290251984523398528541909798523544500325256610801914570516544179422493132286513882493742486734899794285757263213800524455190312519821941517605374133653053420440622477913162961714166084285560380461724951666109780014451485677202168464629317628713388639434094379002733937257292574664335178113728793755680862741879817503989379581963634400091256919338615102260775693171713723007892411845694677728148017429705514906664600318703610038522741210202829247422312216812664924328538550754989532234293680202824371850832596103404171407753823009873939875814686183469055030363445271255091137306470028502854286312190474760883748760913831887164301006369405050936436516371937530134713771242694579301045636675949937946072049100389471204417049509655892442111084709160611337658670581036966569914935867949897279527763133616275104368748595556120766113513771669516448454344945306342517554971096528233536556691199709731884504365277127738737856039034228377189245653250792397678587601722743752872265385975645110750924431459690389582748227635043041625709668134055834836020364934965486369675516780307003520661696611385255113796428032497228147456916251307651095793428316434803671142894197210144129128689310979229229855987166860550541187447818636582739946451923530650682910930348076066404786329230690730479898689213416334494845916181963206019167296702035143719791796614194693926956409769218845638979642574575193864079752716119957145103074193723966501914070065812726840729863202102230424114117305097035010640311603565046353590906949960983374686000059965446515609546588939918326542058627403369528489059470938944659066558056970933057977106537451179791633293675231020183345473893222517178855188317105822642201973185103834886107982969273712373758031543554663662539761938079576204382272257384860687525584547724356768886237844296992956890713655260206082460273134173619116533888341673456933237052948836010830524057223155378537390106753980298822241852662196320359095507751797364794523863617696528801248766059499219599262350881862908406960047983230377481674103621630592727600169462276314192067313368563787328413113876725683472535457468653610685487154630180127899655005833189627175167001901801584989559125292362309872769460254861337162449411795779379814958560836038427836401025935296592424949629635627845011500115066101921412085157632520737263638048968272647726979828810777724166611528931156354169537594533455650722226071926445119604716273209979927310449282691642676430875149125795078483891161932102183613826453721367616745250395378952735950207794092083332089332656488415547208075769218816766750140012343793634517134583682752632940283835526437288158645935944417499034284343033001588934312222012614180731233494044104163714419309347133676948731120268581167002738813295237421545719108000846929963357216572182190138731517482443188159592665267449012729059347182724062256539194859583856746282249617296504648932068838422065516858641024850269908677247103758605206977286750446131461417602431821861199261489050186434425033664678546267073320542433805148731151724764415891291697189713363319848377878123782598711266295375144873144231100614575760716810627573587298187740462996520929824659525586202234704460479164276978119339919881016125712006204806250176040729831895776549165962888797566984727576981262365329541588503950174024435857030107245684850446717014512562367541392802787656840267067983324055462066068004231223036486867811198569085230041056330547304454248246669543803696458282361728009530418780448580615343715421401314261876203012421586573241584786823803820419463392204379873418196790175526198276343050978582051873445678073248360882442167181965161434884639544731723516819936932306529975237241121927954171591021807620170246956315877734886272837787742208646781948087670907877990394653184022275096360227121560732543351399294124344024424238000151782715451879969462811740754661492714826482518211937062505084804234758950658049191342757415457131973478996512868537045014530191030482120598326450912257718533532242815871263277796825156490800726102354121005239157048865227484392545848823308143055872965083105692955078447887503906935837740650418179725466495959080504661029426655351123606167521756012655994178884621738557785542634292621431552162562009816160184617534974806992523982927118972700988975789578850862068974914612835375155609885344407799714507705380600370432917680096195709051820848065912788140746206270701086279176371179006128268580402241798708338819685141921140347109438083240186708075927353921178603285408088168010497615978001885859753915848047749176477268299845954106259580358998882638144050298800217964461081146352532175913731597140582242467266007949655887797194487232242068703718377083653322879479635051778316433723839919245972996996194062890730234750178364464063619507697821878001772407120086539995411965087315604818919097089206379342292637925452981882281690331215377239541507632702631606480269345072918606671764163730933567740329258332274738891865389379888401617340699810501147641214016807371733349648809294426638900290985049096981899077102422408548039766072113409665558014564851601156408061925115420271734588620644952054015233475587019869021709213808083361744579730482182905173511108418737532485230831623968701050374277728576856359195220194877751915085842567967910794610812574695936531946656477985629638228292221416644101008912855539800503164961679111200987500496792353782998193550173619482786736316226504038220764926479628546072194654313768810096148112149615912082330848200788020597963836685357893372878624196933955561328702386601669430362688783995346805513063408747740373274561359930588955658780633797132342457356049175350299734723500542931352438280045849948788665008119236176759959906959344669809216308215354887554918997752333958830417804255624536861215378517357575167024096703302196142865525970778982916673037758001879489190520197705058452994840890738967320637053475696170587367224267065994978640282543814952430386534959570419473759440702768910998541858701891616005295049669582071450899351292402673000963116667712439888081621354476925472969913498168081712329544064490837212269538701861192902494381523597730688896600288269823205726530372913538736351211008569127631200133649438254590672080631279903254171651826783288308753718377862553946000689615537243215113905943154223788201621263911205618584692865332529652350432121785003430841141605892519361667465697260953995872211136011932430888509535808115326303006350998192307932324071539461424533308250508635896507225636130303666707218230157218759420744303772224001734562095790592606714503143065548486188048243966005691893614087047625848457114646832906760088517805308963205738578829596213362306336253311516370004194544815563499588187289369417511770101991442519559584029240720145649378235337060072341700642670649273704744560065117149565223642999563622009528590299838998319066586617421634819436851266622923435241317560014061317812281537759701835413261687700624772116831472611531361708291740254678758094349209469840147538648232563138353729706995400172865685783891191259919070542976275124255868732470188520906893221575435545074386814012171938580775719298017044500132210642197901308945236270155208126841890832249022695106696070023615976957350204594458649621630273190910122378754902652357644065830859402887884441466890781997030045621295197778325954247983532072814653035946992396624862987356858965770523300777987832466168352207136487996945948129555660895045097074614148512067041549334329425121790010123219811470420327607992109990992010736103649748320347622819230830876833202532017731329014624429605715616306223103462851142705080518925212273091476865702489601978920314266371527238702295196509243240458642710615853387875494965177780228318881766012417714532839844714481229154100512299529028326172742572047326786183711957492830278151745785946212608263186970114371325295772081650111555807629923446730287546488858355275430923119276964084605156988468141927167915529448015605783365063948552958301624191483042013943128607139003007608476008565416651715539224418427390631963529398600645036359079836816189767827595989060597066851325337951049174822661015628726719086920098316939840962840298990201033389468689398282659199029903740197734070887066718693342233143426179646288647462633275012508991589356344059667820950645843302192383129665951567935152134022929313357678206029721907958347950748321221620743771471021205769181418645753947149850581657516944830002613638092508340511657306848321968688538913607815584096094726282593360183054998030694166407822755928140742012128982884706301889875196141927647438852447699862919770998381203112575630930928800632590318569045990284026102859094122726956194030902495690068123826486372543928874448567392582171358426964026347575040672219749212646232154597412818862790938852857640303874355120703298108039096320476921756860901119255974338742114168940748298808110879389220508626176226279465599666419397359814124795488802056851858801586487700966391961253160444526272233837568089435293475427659418312638820076168017152040638050066871324920171174143480734183365868884930819337414751167191704583301076850375624550079073692710841899872454554167054504278540270116810288654170595480361202473701985961805766554264855515536849034569931365013118124760055379227664580170285291269462963367774624569817617051168942090789905831462760387223923064396986986930169756172194423024224270480980907854737924927447547269617256205914480170857530370189169411511654555098780239498509953907357177948222957514520376883895501527495393309830258493307576663583053470311662943403971701822029400720880478133521194803732654915352809633706102502828299945391297363332178509804411834119223572142931012003653621771393338138874310540184155951209102710018183642119800213037579617535704097599723988331976519813099305654867759042056810878424789627980516085667428008421416408648295199186506031901276273858983312184505180595546688573879495210778244058874431069237541166619605812469628911340410657488621900513649640022719959355372147559452731499162930034986829823712064664496811874196673949316125911790469015786515142884804198594445742046609182142871332523936441214302566452867589309888836784149329754071254769133986642731126037472821686469876385009589862316937981458552003224284087432895433476263326448948997021915118950257817982077675530164139089818258160021697236835469699232846957880623849093254718863721697465620641365018988308515974893268406757313190460434082557455487359376163585315795247800212110039580855389978756731484977270930868692828227211005281687299508171836246471441608422757711391230364416713547389236394958738066326287291380025109265343310577579280984965818913473526206838226106578731845861243808706823419963609585534431014402175331970912362310891036550782702963119626547827540991760801565033091676712227251959267768869355788816335087444075199033508951322432429972710485453809034589121417167009305276189717470978630404034772044738180114040094997934657844181261208946430817522070553186602802008968314052502205393993616906589923040849351842915850238202049519557064949032311780257679047920823181963859544675060879992310853753559205975432024359190660013846475549007080614789457376275294441206615677528528710304273752736497105896681883019064871040768156293146876710133090287129935263591020751756732489298675603457753248445163552824920901839049935894394050343498370549906523166988896376295121322017014599734773354679880635247614544316954329818314871796782069748797846678914415138541730251326395427725793748446292321286389473089104394027066149645593677761010082467813667411688053712280514805120661399148943871831350660998914744469001005509420695075917373273993023299023663798640903137988173219701869714774982716750728526184971478483150842889690495514812856316294065749628116657131410957623561510808358762681951852757674354199844343993918222603781897907367375773507849607024786823076675708093949811592069257048267862193527309267894435924255420116513655868969243899133946098317479791096647743738097071026436786456405500031034926508369825949470139450758913519183321306379665421986460376945049692069057078524614708524702372753546416895871312140603464425768126905323278722463368483900322050147225875174077439478527815151934223813437113294322743523364096521122186375409793216087436183997434590966984689153864140315518057879944212277342361224585733408308004950161060307505596508621365353756038383740766642443734325224994274445449093091385474007989915706360613599268774884587835432264282302258985605002732848896215412347726775921833974915292627168139207899547161361931460095234708730725916385564634494048559441513686576521068660049725068311514083568183393149487957574325830309048645085233634942548518341705646968561970985876671065800328228554400116041609140656835260971307238061038695337235120147543633270266739201293621457440699283095452361471284875086896358945913057651772977843771407690517383453272728884511224202554913005374106211042472201221996761226654218519195813662167539776825346919189740581531315376122740425125339763439847801751516159749920768263990010148628844214253902500641939617124642249908625139877195375990716224358366971628363970311917462383144693882083298239196319228699713330182226738207770550271381868042060845027425907436329502846869651677892930024068253572051800681639510310712123961321799790391423582153656233502816657630317237237007291391894979459969634423491499744032361796465678513653297082032199601112125833816130230616172351944023176331356678917508323765560123020238099185280125312687623356414938487265561444437595443774913128925253637082238358964607325186819520420820582327990197017012625804308158011484810883743428825822136217195567783504840745870388386710524026108029395932027385524682493663540959724341581381513940901957769477612948026559218843595778089048164295595174810664101740074024918516217847638645431818744719903415604918723270313826302188438886672846127443114375571678837214883228780069289149241064837532433542282748211896577437104066130190001054589075783145737082525767955394981520076001506071388694049090233007249026274616781142969951100824673823854440459177252823840474280796559654180691458383647201115965458365150001255755561945676665379597104461792389826460871356806350838738097683017628631205984066551448370161590303420216273989051472327176217700142017074536392703510379912798701647666113469049120631249330057030240067343218125992255639302619861798481201086799912089982891698524425184709157061645012047093405481327290646795079508945668345180174370457784053224850049338362111213503063350374182748820641741205455005235799132398054922835436238124233112505329369475337254527523001200165336620255549914433168061114022629545806435657270101780799579157812862884508031519658088307192872637061243521760611712098407298516695384082508161262523913605672231279706170458567378124247674451704110467762632787496745247165556861005095571304165679518452144117461770059672643224245030674145854667016163341188741262095564926565916239453003187547314123263524252448125111754027294761442294373583374623960222442901147358632947184740741428210293413951257720531670172997297757414262918939176362819567105092202638811924691896636487873011937208115325674902575812771005623456516165348650999030730869741761701268248368254032447140716915953246376714689384285700534685868860239319197932558909163179211447158253721926454913756963818000870652047279387190406948820281654316038106333477287644193002194045165319728307470597364003476392175781661134048725651871233259190488037997404192625894982018137418195415975579394878679750871421158310726431254041144271624671952753425853221463035547819859827333692246960793442245327062078822789096878909162147096586116229751618523730869364197348690255685118924400682007095370246681382591214149738017836115339524274798954853775811556271135593645627590390916965286204543264888923720650549382435646840497916867794979654151859213026489429729542880508917310158541228803586827817070787681851579600423095874648544148159516764151999746473375434977523292508057106896368865672418359350264551360108768382092600880146109953439470589716501971903949273597189508584055822207059746661768495038762597075355602905855355987781930931232587138422025469245390437105762610108447216072656420514294395257763587866826488262898413125607193300135670493653044853487831553843225181961205937886633160417758120133762151935654206104506212330536995530408624460796401352712332044056390291953631111164396897363310246615362529359626082206523371410384705361245829752118225659131964786527235881354812870196143646817340217993672707885569324065468437019810535846802165255041359983583586462514307158132327915910086711250600375069964454864447375196817903130048302118998900897442989180850537277969176800955041381799510672462225237682057220950573913411415090984563024454758339032756132116461347098318042498713579862236756960614481809058082268337054721491387592194345869804785013787146313671983764657829086212066023964356252986471846269203986093876334094377766954832761905003109392943360497462887123340366436176343281744744614653904626549079210222364678846314097149621033572947343899220941079602848856395332717949200878531302345395846382302003289895956104590082485747069826273999918655056062355359206274121364252044014270973648300030150835016615273107624870036347865420654041579966553632824392390476245954779023689506369330414725112780956934628858815211614826390029720011688615782766733554419534550963641298853217297167521146414823710252957390964827695020179456459926177881176555703821069388127600782095055985634920960140799151647429996101032796239594753316435834201316695537919862967611294099146004710161741239978922969569945985705097521160628706481518719250393642964135762166132451302780662107083602316896733712606087973937971817318347784790063579425584806519851637088615474306263192355795199663733815822943980532153544527079761482941549500066754103605219299595272651377565526029161118653880801595714728832682626767607641776725639776362750786372714882599049682691204626190669286007737129261492389116198766760183970636244161097286670443539219174220874854461067928928983753868363166473524880448237555950252271859870351495262142481949778793237975118613799916670582364355684900008831126847036718092681807938132046119771384598366463712429596577673708234211733090908655435284156148637015541869137101498927204779453475610439869223554246644264471908777625760532650038098335423590568927030301970356317120669043308364638164351199162065089058439025763369184019221567156790072120031830134217767120596580665525682389549640238404390781075175259977271379627740713412283278613174533051681096018485834465009346556764904143227535764912573610284617436667082996064524620582632862965454816566930773974330808368909107122417027396522528141210181340422290038493787879708525193270875037241092865806350890709494946768147292023144072378617415684303192779423533956638658088901968776783376497801088349242848666025315790618574702209755870639833090048242318888318692936567331526390982853299548401064882539561206721279413077526157096844065304968612561044065834646362609476269040993374856243978475129603062118491808648237176478924203045813725313406680634388575377948800104518020724704842252889086991527344393154371043838879434206934740946114632883625880172261986970797991414925561214441828752129930254325269829561224850476861132316683613635341261846939340136372826837174481391456992671604916309658489266792044314450300643698663178045279481923431822810864581057784839184682458371171014502258563758285336142503026892233714031331886484715466483402114422174975826918829563163585531736848163291443659997529975875935499618671784742804647622084685115093967805846822952003300347119746578364144274467926310864050539544023979246342185660503467880768308417727645662263417387101165128813783896094255134610465272424758094688950369723637862216366014923985301102555097302471924997052409942775693657176690749087222078184195260829299868641214497907613957235501068092916004814821001040077190635973508038911692113930472887745353570151790624437783003579147402890471993816275148271342194785354109111655486942045435138399796026218555066588033733330528528154646712569039203840044046039948613447773683881929619917837621852073256958276753643529208423163697403286019855481184644028137171105575197393537421323423544031457971939578152823992439406470483959836460638169598603894273868461935718736027519387650515156693092269392691727917232338272143670869596308456185396307655715860833933169799770545750363779519058961049200615125090167856094400291229518958109710332082008172447510521738877827582433302823763077663191023252102989250304988682459140653568722595582682381634600990296362885552584327275577586901167092989203241229675927076716522820616790379842827018664794691388694924691147363354128323671989928305608070918494983876123503982898127479039111573949250130006646662252528282070059205134874948812949610132360060279844139543740092839173173459022381927826313271136983358231418351150376945384450753814442825128968314757412516855768654665255300138174767526012423287808479905510466529177312486718910949076936048197215705502214598936488224145711711717339411909875659178766856510435225705119219277689793604306725426332661662458404928817203443645284810568860079712241528742729488969954100851492296107568756791492106501104967871303553530607013362629884105982081648839445436357915170302544661908884148929260302108152730223275921569237047222071456653895843645835366569575915600304609261319773907342103540646317839818366461624949715701814511521019008218523049814710572170682423416333242627884576104741554227889001452585041149103831626682999099150177338497205495521348247342041383398807520779148328299299763297118608684989395972977423720838643835123378576235327609696074173892954580988266496930288326936188026672529653068878643370719974797650975733589288822989676884088937381331926261300698744305887396349611370359054226464145677142796584246283830543790057351908038240858466644496271084204976207855714136537678987151888848541000718899102213480043959587214691830786700350689313353112527407145421504147643054724030577358118433366101916821552270062294935156938890755612751133339417525672281774951962546672232819243817088566947917916057271111290880706362299450579188338423547760177321607236732410511334481862508565293142227391063653447516239550222466490259708902643040708892088126733461334546846759658479420871971880944490484455660706816834396376433785213758477701444553310118680067211999401805899170503454208682046311047178757356407666272326924305692330247209332115237544394585485424679798337570046502810457121188487185461138043321284553905973145652247206780690350986281972452247099764564500139896692544111477148805545218737985172775696446837918766843363910518626098021544953454542506827707330748809269386181009211493956189054746065730306561041536796553406510807134465203517904558741822156492584209659206967872594830381541022799190661026078876724426879248132687155050057986956374012311503810625087616905178662039137683422139248793331527470477837542911109089403519839068984542053446132873134481808671579988978118883697981818643485072654578597387119840203983446616712100544420643623962340142928309049607931397984691361201973192636627983374518439719909561593351596095738965093520681338624594443408417936764539126077888771523374072418745365364773251834852988566724978948693773062167037099127508002550582949893347947371000103313716363925573140621030229956221074981339909471698206139352130072674008935998677649786532604261558204870943108285325591206655488809953624204762189917561778165127885558090123089481607748017824517211165417928628141730608743139374255094469452831862199860087548129346444760280855794842996055936372592429939922143954447581966137754586202105700298873803457284859743438724277848707551485866741702226069249956774463953886894601594763845177980240547744178489197574843092822931488896691196552590053958812803824767711113429167010708818081618403211313056653421295603926610412663363124729612726353104727770663495793574380625046725236608029224898070441883373198066275046010857803299127287417146787527524318438095297245913120066816255854441835565374309977734282413464134404971200747065348742392332582243727733400281810528465396091252741039404989615016780187443146590421234909545445575684675339025792131301594032255267393102013678117525290977080660638990530213092331757896007393830171105098653535657030737682320550456583010362367914537618957920612041346911121292242365564558800663433918823355262880266918660886025678146892305406649360272422722054375969877524443058838858209308035873115716245689131904107042513495792518839961058008126300346704906651059115321522766698702126654779571183294238284007293752267948667096171855172247704490363472788370848443148350152999100800501212513444896364303241782012381220721537771488637861702628988368609831698745523606457834417423807705832219743431673059630821894936212290442072798353505835443505563536115962482054274832201181127028200732949089723345461079342036824715242229412470941504150934929232007248354204560905224706771093676873475791590859576121310116618441837671498799397072838537125145191664469916765268367350476437510172627590404049426809891568652880212369607255182733633573721696941548598822747828802952682992095332131298527211144001430558383478678063179828381058487521166392525070332228901653609917816132036517900504321203626981807276770057845757023059502487107969895556117088947473146943371764416047979836506986021328264096223327750131192673698001463644752033601362211561759359176731800966589650688971629611813688044079859728180056721085218421402532658524984093945099223426078779986143266588029137385226185648001291819274654107420112808803725847554392447526860441010388682608711719613571091658014161294731317049001216754946517751449071157713620965340375636814497559164864720269506543571206414232540874613835148794234628228935610029591125256403123443142996230828831782093730223594702756956852144616072574870441046598765886727220762808868073488622515006250459843801916787521692417966250040558484252757764540013489899012464562240513682196970372907661045467239326553528407450330576991259449246183267366981104051690923059642511786864695153784413600125606953938206825101103927160144908843946491084038546949274442580358761757923872171777810856559696130074240917317442834189547560250790876358028245835333873585026725714362988872798578198913547714640208912334284222835287124984018670772916467445669745083564521602405129070821504234083399172478205507789718508933179253000983100961483137675716486130511698872329019141033275832411151805346877609808735420953586015606065315541398643943703151083615890027046963910785501063125031680273823496027435813924321648691067173910479563040596294251543925914379495501824778338722847046788083233813511797238523676933630506754425723291812802861253738612056690913175756373218520169379619256611942031641339780232084882281190150149636074072207084975347116985899750912046346941215276265717846636041002448484259032325997165329098381090299751545933540821385912073909196560815503697984244909625732912549906480774489678343568547012954861933538383514456204047159265070465424197257323959673109747652722295978814444896734730988362126332954076502723149257332445150174193985884308888485462389761400489844189372903369032101713982581744780844574727800252454681233828355359001903285588205918270288855861339248637141903541859146874334851208337941559491391022540817510686576947719424429008147087815385283034916789427361624536526865223910448216435118974235300986785784916765296688630303647663529858107486417698647307252071484094973547521565155236268019649257814598203710195169381937454411594200553658044294388448761031251876183362012564039402278361320006639628994407468366578738072145367425583499102605050817819990300171658644675699913968996194883816707084125641303634174590841183629504514358152191142571206422894549096242895192876518147969084760054989579115726149581188575485121334780910982811113526737396457111493413805115783671914327554636727145073910033302037599319029816651357590991326488445970995637253274196888406020919662076467984741868355689409225976727398379908502370190268708701376685875034047286989962136161106861918746173247832025084956248264988322267565121791776878724021894596201122119959019527158444047985680155922574792746261305526316703871420897596896859966569600145931204415369593099288424744816455896040248670362106948420321321208782472493922011739423309308509304135220207920305296485963095961093932368600030472006174414505251669998532770677808438247824694784491331820158737033656699598765053235945201538605212267363322526245449436319412365495719598797205734603572232717710035595143372774013660436860053104543656974528143447463246097891806334640234971951474414370374672061201276539561063501668145178395890628377233494894213180976093829508779513476781980489516411693644951630286608687907624564614717104117097725409011107736656968051255879281882398546292896597872409314616201157886696827377747940849191119892652785192565853210814809858377792605163996739888833648130787121437543892022244296620621233053724377782218005274947592935673007594552598633187454450288223593174712562928001550661944236104445333890601760082501703937964180178332778199130938852644082081269768992323022391246312631960019000077168047808420540154524334532324150590788749026154023578862367431290347819105056331138154978553736819096947016243430301999227981901807088418157357413806385407619296853605313636232431918815598344379922091182865856532470253489398736875364075707254928304236530220710566074297805580810587121087795609937094747141929763628265895419578351994218398409918524135950361550830183517421749923113249550110841901425114529446840162950483736143041368478796929347798969975755935215121350566227825106116684363880730862970409757611258846123485562517706001667138039046452640409959214199392625857076842129855175775881649988563916845916762377677094020671002525068735937640858785347055299125892943997796353243483788915353757710718840938813138697080024407021986911104780248452547600776868997045800021925261500187554781020178703875551581173679393128728946291921184870230662911654177067432288329283934593980016968171955662941178440332826811619624091037757267686689715205542530124285010193521190260793356887787995102598215018146306174883092371577843391888229173021451302389176170573156743892099588036380546049737740234799837254090880152459818818180313147738557362845175085658392027646205824743089849559435486613751706671717889386497365948053860017511740447226278664521026648620646507896937610291396033759419526718160413101172863784505601974801799411997512942964084885950655785939600183583790030277779847819508688049264745410625347278928064523011895562571103208364734302404834870375285046176752279441826530187147817814064616447822825284984505543468129181168969763667827828607043029110050106282474112757838847575330548687885191077436717742468269340119449998014543827351158548440775253796242442037623420907769905748443320061505300456804567535250711685546795423972610872719499176293240503436814184798796568906527413335960665284114192847541948211102996618056486489736730034036818607271937896121973447076396699107110298944178269288455193425197067440894550864068576077976435062360859476939161400193898552313984367090972032763174446137517110438775520693163802277780916894373152532730545397247663644418736092364846391527895868407973256065180782649169238502063058796501891206306232785901110013146519566679570065229740758959501945441446579561336108429304931148717489849263056354103660129143689503875610301781466421469877933375985255850116686193864933504634698995934589478102590249346424312096206916734902793970887988897662469275909804063418964650005602678377306066247819249166282641236014956567587863505903114626982200944615409495824140196076856852007428662641542761642604348898096472931494452796118265371450169326185624518563579996720205272755300348462764074605272148305255789984888693195095953071904769719884808082359620608342548137363252989325156962806363016288082635226199299601116351433997530485196032345476465501811313587072505486173603298383612047666562749316530657300931119800628759711059893957307549270335839281858777667148353305427033889087192180866946413083385235833063630540450257380309219720873151330250854613888465508111201899934283649924369275157125614490410603102225021482917567797774550010266177301614938518692315559405681096091652060583291009256122601880058290801602460369451693031798231872931186870043873517032151509176841528626165398680644086734463142919472351191388578626155744619172594052812338710851025853797806193746447787153093726866272277697562547577490513746433721782103266495209544284920432534781986340228753150695838701818729577136254104448439900668572102939360613536145401117217978922751985602435614077704447890534787289505806775857174065339184707867546669826430497104926885330986604307474015249255213507386672580396033526439848620403044890036054024271732538531084024946089241873939664455184966214917094956756427061803843485032831947371663328326330160563508951518718270426562121649142344440942087517891954196012717868679930521504806017923676504963529438744859004189405665760884743856490664227717345166700174814878950290482137060986413133109500046312913127274421642906780787210717339245534902137021084952417963135410298305449496720714806443099426072961458398125269239970267944068916748104325090018794291129810541762848701298780547085526403876469176171887578113422048506678470323424403410842924617396212729622547814232632311422525072289395574528236127475965868809937029295269916893290978149127310772544604925786205130588303394986227056042468325141216990635306925868052724351027417736134226674019908418320590699181729723140941009015750439999218559606702950081213674498222424730440209189311367243223281458170270142073702000376092011340880308092939518383720028751667477767568739086737026161991851007550867730706788484091792149332736805546541188145850077985997530288207043081806341744414053897477720894834959440563912767972702886758055077853012843043037567357450924840514610024720933624368184644885961538981869869009978706942353263204008072324879259423314360602583610160911816432115175388848359352914422448406302266096412489007785700858039849307081806882068544415867999348312936362456562898921965948916279164278782045731811933962796465844919956030067586542416202350904862849648959434588013739195679403933154696705829425933373270202523606619702823005230063875444042316337748152899578532109421672231634843229678645454474128943778701975420050749860219645203717354330953199694024332652740106501142713248481369592646038510118415847195609325025103969628314364101193599548316365453169283735444363786259922698835100655080847984245729690426051396535941411982456085609253436090414544102308271354959958234701835542679851874330848096643842977401602543583702953981598528408768230221428447988033139361077802184279301424466746158339903781684034337711990570016136258019324763414147390406885111626110404513051528285080441880272190599082065814983551737179627703243170084313816733899417331131593442513995140423326750959142094407996232851878244429974516063822125844537613678494584435893883013789374483177660970599239663735609799031816967847068147616327577066682670739187521992723244112187176340933190097692376572942247017050123511722741223905849698465953205946633179655751746973608124805021725898198541710939347869689568231513634913247603063761823894014030869892935111056656947923681108365381025186112717224060166268153782863254217766524231985626661696758365067411447638974217015046670715589022736108952927720321949290654937906183647472259612341122421491384486449793300761138502350424138367298252091711418293567715742707512024431826739730137486369963414346766590378932092387038915172931293422612956380431087566947256307147320800876058931966008992868478702783960596591332923001861685403159803162905111875275655482455014082257953437204986662875971592827740391872606964908668932679181048493347360396209952687738703988517354552058232157149469683818105887698089964748970039799242113763192180354704504841806951431268619499141540586082671354107128278455836932615657155600499949386433842610956055231405362444446085568768435687300209276202275653438230263716871342588871027485559580946787443409719929403068677332398877224835446519761275401485409924022199167523128358218250560264821702395529494788365506391363774375616068018693525910789452985947962486175777247417376893032224033889336585257360989466005349662091653593596404864321462834697822775818631593849718350649111237216123942578974431450695081744606274844006979438937670725924282638125826797530714016923180533429061925987790400500872777920505380018943639229585481821003275025415257040161572423710570225604705014333040448790766122840801863704615213365533668074647350722746291557200477222088852276447306779280706188069820515461445726224843841776653372982465685276821251904701622530442218086537363329692740272547192841757298176824207809620800840796866345275173763356094263962629102567167697006354558832981451387635537240407183351768337352533886990971153315543113084011103499346769164974412088418083146766448372738345048121146175769949153228503405307246363769090424494465799488309853340174920072624400648478051764018429051227629250349449648716541394608071697493147366205379305819449567969168290371040739535379475842075844855787289263697799450017603529399167038251705221433521249384172083363105203014209743037800394358349079134280830679730816411610006577562398885223989111867697383710158314637533948762766440650584068020670656494257229579378021259106667283963691742608914719927587463710439182687280845871905287529846043311993719192602646880522641629757245067110732517745241844059611315022361898320138870717720412995281530015669036041747649028041203573270801664679340497722552783745350446878490726125454117747271311094431975085058055882426807080472279174959780272749576391792813918436161799270276276212836559583697276576923152833114608203402885387596210227534676844111380069256829232335264794216166949344261173864564535964071936209146370778190346254507311197132594361531699629175282367953125734022864830652330784318252933650392499963859872586980384644731352608970656519716098778573198592448522770755943511741920495145095468261856930073637239002485801262051510029846083661354758207902560900213022573793385919055462501840886159289199476810602363741253835760902455618256456029755754937838019857902726877677337986106278669604116189528703750550746215364046121400556263968414589329996369299455895161780207305012261731029223247419509865598097323613930008468659814370387842313054687736912628345501016112112120048348474927300563945615463463749098599253370261874278804094501202486659187772266607958460326355070873415223872887845071489702517110605840858713712529133536396565331337340410519666363426375598034368002524852624965815408024345581007311955324751786077953384539231249703342190313574192601594108686271182842794009251538020402899781064971140239926805557377221410502601186443355008031293402940656893309535356885001631063994265308213963208649734033691759056823990553465279659922784023449656071994378214100741126100642657819658770938622116363522318872323091361512324048661904923484411702238695757812034143184567480019051634634117829809116022969576987741738880093854503078006233660891738530983634249832379636107671194307372477719954091466030684567871048992369551269131930446399795344757581960678393362906022334064103195787848815529383673341624239248141811641864126205892631976773946601003700057461778324707189903943265410051708633963099485005075730641027514111732425221276786155084687808856943669433129769908473174522507062094498914841061296383309287696471992929159243552404859816508645404357367029773853625322133040534966791828202307084526567415974963249946267808448617369239258365050088547879858097745905993471584826365093551117852162824694979734659052711246694639008903723667740053899541055789086028552744228229936146311138967015232093364511105054717686139714871525928961207465479128084100279252614850403721811732391713836379117569692812948542321795710178957244214843484136100713313898672457515939593722121112804431467816596261307809891563295979292364872319670715857413652972143376876216172064183812358429523310252785082718489561476545904096272033363375525124731161907905363556260807540346864021921198881836303262261658355251766825761471953441557203870428786895747469304347239154695662714782844287140851123644021101080300599610254100403907555894610385762801893184904184121266945376590682428100913107573484295227321533768744009141322792884585732304962164359754285518050236328620457685722703502817099684898316818332125213214764800808008749436717566763390829424721375459125160103204026892661757469203044352529783674215567334051780052422252257783722397912970736070776194414517042616110099349832758572449494535347705075682760270797571472865699084129614683460911199155640620334443408191893419372982344575922578114384934203602009299123489989395026732830858391752908615942503839583698343864632741790481417988686630560008743012607861388332620860494340215156157453526243996074728634077693557001633430128598856629184644888559282988093699208268678901317625940330964399382426447931277528117415340046975709880636234558043902902788841316410870092311177694175072757728927702622387878150105766436024035724724248365262268145840955496961501117000077717947943634357475375006956011875224131635611122685832668185285135756045341134447898447375633265624946629449148446158252890742019038455983938912197183493925485498982799719292064135867982270759280298201257939815976103148078239688494841240550908714568965321306183732788740233594395606581745141196498408039063544076688750947672524840915356356125892659237085180211263784597867238420249220491918766445488543785895030536884137001631983198395700488293887620884987094843065573810418673826826963907084437686336918666989003141190224096557637870917464333004388408942864085487685173513915321672133917624238085653860278168669290885282678667818145674962846989644736016174035234517058605426216846750121790880797248429192813072686017163145212556062963564526409758156463359253940999389863649640882481642146736043142070623309643167567550661920378685299157155641846326558221647405324100091372195002288931992036344754539854663902949539684698083934233143235970473795509917499547180599118440830112852168603985011145423200467773953952487433409985058832824252463394437834354547731950737614607151330871932479224471772842842006627665453701200913039418083787989975321718462155058193738178927714037813205302538336349111081300900048440432769546277304908701880049028562726832314784255273284786505791502212444850735947493725473948135838793651960369693870724011238265979864218687654819333423158211108117501487835307002599204267739084028903094683102600932294796786087661513142098907512783656881144586964371541851647559089884070909841434539401010632200690277075805401346562045298544223733676437268466732259598155396344332893291976229700205001716363258470060359250064990064257267342530041566387127627610884270517508791996827389995814685334362487734980184751869442397781991219153473666817431913235034181833560723581671149926956366718255140843994198353844311728283390681703576799571817258752118891340295405900197347880809913713993489439564668444912397576313008066617975514601026195893135818590074132047315222246792954688868943652974310121123027254074222268194945043858398673060619696438853033960283902170624159531132462807362126349003013911848240680352484852730138795709948019369815405982211529875131148973970384349664909909740470330684906920004262287049256436312370903131736611286313172733868611657231619946986700219227624046884330643142160545709306175081283000285640972177193165280115737810575243892877128857236717314575071893589158849670886565113780153168725256191932780212025357147017365727979348217385139641055070138680524734673507409647169045012041602343125867931226305319068647829572398677754366294861627406176138510472406093998656176118327066071688030704945817398566915963189467628249071355233048402797633873412712359575825798129183645603178088095891932389041596719112070317459594601605375283532702038345183187610549855107048402324133681783029610018766898930697925422585038434933039938138292414188967778419852115764630194930201944683810842520626804347270327332871239887095688190629033743439134327927338596856670822109483799793928062813256342544148824068160118891711780856341934668106739589201572588038748030217966630702165209596646064374815107678729294365238094601471749941934726998571398663985212999449903681432592293126336379849203467842549799649960706058127181121292146678538855288685959662159640364999726703244310446789076809919464368756063137004397220944521084043499429238194909494703321254782991579583898837081432297437831683839300235692059678628873721437905528333921100753851259435511215964739815555100939550526700717657031521917960062896033396618414701477435448620246368323774098987826238349114594117525654244181535902121907347718782192645768479054903162853017357173112614030412043862391300525938377829857522552848022881942841363925550844954492289718117230705617655841173691956114373761458116023598496431368532310635360879274087859152016463187686676694630371594250522379157196406143559175234473724155642089567367910933813872671292503483262268217402991193843176966238103770267140435048050466524565169748382011870248644313103677805920911265982810906270643657401176647106858913153132875024654209970876408257446207265665320133157866243165713692814168300622594717761638755596411544171520964155738214596556427568178647611883507497725283655858599196312958864986142890102241140731030239915338431270460505494735617423688924450954769604836887255559167760379690216276894198434166496466288636907157278086360504176702959392734042193648190493251704734708614279239380021366428016851836203095400298645798735472814306400184729328984291132653966883826373859824738585831972643078801149791675079849629277466186736311230437983732633245010994704953857047325043446853708567371263308065015699332038314871474649146592958657767872046634632829278762841026787582371757469885969045121106604937069978066537223119934899820501743244523049277965385574508855422561449322580723405275811351592819569434690715875415217826035870238541211927476530052120705087265084138484797626301599569053925346769149178173839183680964810575022163052275531970508037890501046612392401175565544789428260882689505054365381918995586715373855975024524335999910376861531648754839830444939573810563531787236006352555118423620381495605786359686142721251771346256644130749716533645218507185912156995656304681415183980875610937332464776295638167153020034561316367276083561133625957728019172400557434035948498976594842189521058037977529903415149838907055445956039328684890531015888188484823509362806709651463474829305003949535719147619873420457974260766148005990303058088410634569461757940114609588656172646146864866077732326336519895990564615822289867327775852729779022969229582394822219013518622129636593522241283096563398945571928138847470844279357617612821487017322037789408995758822437652849532759135181276158529487063419008345487929146024446078099034056883233123560718094510939145405431336091341673770707069893552301082024049624527584975145607927437668943355300647399195812179693420724531689281379951656641306532132945878352459694558211433563088676017964746084706022439468445432974438476081741972280206676920646497435130113984192808837752134603719745785486951488963705291881502123852064733082371119902396850502502467012736378702377037862886277198431689553530650479128712183797443817051809037592090061350534446934541216402852950230287501724671591085398939550506839822579403575763206815778962343448050290410514208474020907727849252978277472683554590731303847157282932278613464717942859600515049334363752296205395587442266155145143316369145496710366901405347514568858423511745504961185031002651168682695029935389419208733286927489038441769928522477136656675773998932313874800861972345005466273074552647678174044112166363676460145075821928204212356283038462291229111583888016147882302666749244376011824783987938209937883696121644199926481256722839387818874889221412749502914761918404612513072941190110975498326469363715779673342073321619656956184203458480248393825282644829346618582193241221928500790964589779476198403560847059163468866739469904544487795100425681632847171177613285610247165495751347501737060029035789968813750820813342436008411384608488759480882886659905561548485030693686010198003203541036098841682868065663984552756026614539292099309606243881858308912772327628259166480845611291400750308503652219363771514857827772787668504113833696487161334913576725579635697845463797369697488735066563260730590076471082952705273064972029646921572647296277132354820411333521708735076203420584294395608958881713363605845228298320644019919130785586131826536861991446947996762767464391958726636368928871822788785124865930860854243266509832692980397159488338607620942571810440180195088927339791188230202614751671756697104794498031731173571929889024956796723621355577459083172697382447964097853925738638472871187661025241401059959654719967715641427872752452654288942500187063983151985462587982079837493543434767304574126978922579607805078834222109256262202358328942611810442552296590675325818768847956378428236558172383477392735730961848700578089687153401545081481121718573418205563689520560457408538479451719340032622685434166862265931982670639948853670743156518754134862399686999092569935070522350923670912022830223171056000728775358005237336288072368002930954046978297404084467579150222896773690854339451153638045584830101168136954173599949900267660217423364440108275041799149354752609279791230249741567673367249533056296367327614845830696721412059038682078985702539702917461989939407252881794942842376012969048895998118411997784596738671542479109413068418021114123357124594245275598812847434007818816497017881743226806220427940451770876167661064255909262641042802727038064772490414674228077546398630811200667188517434472967986188744461345702956133066100153640310381181206048510101162913651682004890695630892879935322772998379939862211042421035010560304810206393010918425998452352150925371774167696468942805637244005147648975959351050586055959822765845796279591706467781011529928170956687216246768884207260533494314967142713304332202255406752831057432828746703186090293375960234523995264037876611750601218519918498798929212247132736563209460292691043109474956704177291729389850105750503312686983671465470882323728912421730207987956672435730424741655079284666010369680277532983302596909566573572354613291342139616419818413755222952662241037572703320159769183788992858746353251878125829324028984117860238016327070332090313541230231193905231888599593629791869445999406502060140261509031395830242726950504028408315140375135172497673026966479214702219624320447275578017678004828792032946380820542735656698475774453772621854762641111849437002480013827667543542322065681988063984529422927941298043913539108124411973244665625046887214533268682879400810573979137162414117876483074669161407333564401344463285021021170313227535705457437161875870024027019190344765899467764905798211093703135341625847509484118591736171651407203796057850628864870228590655228609005855515256636637158532836513149327182679713543239490377769679083611425423482466636605108155567206210601108720923225011185724973776987285822325864825966107047396611351226797805811838498118447197856983356837136971258199140322997557072604919228886491673453199016678311604622848716374284182784905580188539215863929919962903749435024421196097635628165400737889472359455712217033778080155482284446075780168364041982872918972273116552820387608342109469602394668777572255801582631173531185703582064844096400181237127199426870460970638497653093311918715205936718693920134077107433861735914949627543418949442145343129570636465970076819624780555964764779180430018316965149368604421929568531474743050241120919267701448587546190719294266282078865415831384946217369418360714092703260477920552705430867141246632992607740676480820084243542156292086838860676994237287479094428243117157529985493272760580535365029365922228254507473574977015576490485147566580071397150230715988881110075171445651509552223887015478144729965187582968265431488189344978778170412735031581059678813575198123758219340441368330874058931243088500421321080734811793666121121243520411148654800478261634558244816468530468461706886745564684960340803809721774555842962613286086278899638383551326123865941026870417520006626927571596446091158428684449798683758256750717095872206572238270752313201505343329803695303934932023436510197838090960201716103831092221068517593758975763885484240155736549558514635319864738847292586784743536023877650357591795790607067713143228507454421494968226601666729101822589613605300051583299552297772132799162054772673457771539937934650476879459287938817944811703687193463954304302795263483221437755966237140191672636158960929807480577951905987601206095323585904813902228827274665977143591044337589365962166278925158289365688114169068695760965698499557878867416753368641811350109321073687465154683763991923183583379308155193369297429415218389239105107249528976113114680970181555326122517500312035897864656084996520232549558715341057195100285952101494818883766195037757934691261042178901522087480329338655540024843671173377395395215539959421196432342858930316026675882412895996235402758644102525320552214758352223805882975478290108964605784729972465128877749848207555433518004917926853164052491615303735096930024153841969180856657874713029817911445975116456808357927550455699234561338557882624007960958020810328468113664638752861852711024925489186096639906160293590668535405417675121674604011228609603561382002205305796627425265761972260800087596713845553640566607584366067921696002056713656997117748822888377288685271269084678493463461083721471780747396566635955469949625166945286409655954360965443817606541570668255396402611286292447335772963881933157884020551402034566025358362371313422121719083301817993225622806456689595801727235973640994430106809519893204963224757168514672918502651779469280477408001410599431204975470633352518545212976495725508314891373862557592446472710193864051480042488510236034635309704215011870894737060642431020985693420669475743743876266462003463514633096872872016620800830968433563783888806559829049208121678561030746630324899701494036256149328652350861617705582259429929726610604969944696125647965378805564835773215288652161591563491335929430466781404769235059949349664755936258193414637798893856493032296992473941568203107022178852208454417234497440103251642990102916470281720842105005003784665571677649278550690252653266069468946530955860105062969514590294916948701121465500500191838953107134026515662716968423324668098020293801881150869735475378770164600103851072260623432679271939404958588885980726341969378229370762802514914282834271392317608618622216179146585584668030359887381925184027940791250923185104031740782127161411689752454544380542159947533427758663881939816549437214925613477852397685129743866571441516112386249851862040079357584972592521602389364300242588414545718179908613726178042406262233117483849458950203370809562421132020672423838376778437833366365610807500879428827819063635716711894595207358842409911768553892223802399885021001282015084379598065238211054714373728326586195715547626769338665852425705349948931908023590076135123531385599959811756347612759256513508192712983060069270739528044436125125982843238055053221105786215444066100920511324061147378223125025358115831643791521636502743090617278847186865935128844525907628020655946971419238642229767077662464544019774592565014222939402392138943648163932113811867488650705775756236067200130765032996323089639899885396696157348465607687901542740529044888305377323517416288773541882176841297088457564623975640983284665133335375432384401981072814842654588338836625859407286066101758240392233209003010314424858901924521903119445685554101246448976467932510041868625865927607783273741811160259039603760952823706580696210110917135329536538441772984548610651222937489761198224328096617412880928857302395278906990052308732098872657350276862034582327343985886727049725093908833268221084792038169266120013386241647749816255442432578313752542146065215286839775450438907826985470154749166674539570847112187836465669683027389754773499279170398714237323089344712940562247269520659833743270390830755020560711308414499732712174585707893905636577546525135064783228192418239997949703337397982023035210095453315647930600183676552474526138420976586161879274741776127569621792522036608137769110897578896277741131015675627656655519896147769770475577153193901283015390728215414170700291060283236122782632759739427874237835015025691594274702292310571180833470709796448979801323223843615037063893091527373498812877313463239416824281470968380635168068732364966255259765210965681475237639798991656947097658703852620901898509854817956621243739586944305051267010351209542057524162091628120773343563516294659633110918678094878640855324933465096607371078391703517736136943606719612023785584372144643337685598873439258114356023954903062011921549732273757764984075162421051726164458285272754774943629039950289371692784606437279405751724843584215402469359135683024722423816317651121314275013607080343006120545552104022306719900519255220573281600753713515508163219889529457260217882692623722893798304735328741613852134082460376525404496415195381064335250054539213871357553845204986002217992477948183402979829343631496142916280870928741687379251518400965236275991308864230642394165377263237798644961073553967326359732836451258959734271806603968790809446964488191497968276062447219523595007895213778907750374058245052354655554037073996556021872382039077181149173522772471901181711925512311660964282555685529490692158023882593830570757418109903758904640635877526303672655177673455048998958956681816511715250730631503560125402595957719986896096312490348313466091314923624420941525920139926355191482317773447914155670318606374790573428306639384233605902695621549707409986659682396637467341063218007832529996075044768443840068207964400854392846626069084418565383840183957796447502747336629524163062983009828706740864938780242105913747521612807539830283542038559218719559376638838717534136562693274993438231351135140385798741363382019434147198491452278752137902503074227109808852575935268231642142211448730013390326437784413929508481500815176449994073337972527028841794146823547749709294498093208032620607948522263196961033368078716187576996718822067116000137751965338268939981657235893215418455246342478397692470529739722124283736914145710260453956448822419504796220493063579467563281796365776750021236884328778609324825321838966290254929875302244572596308604703759819601799627627747412265355300295028292036198065083549307498986076410616697620194999808859803816123540056260933241843835492861760526469273972815005075528388211608450410178456408342325146272699775778783137091187017168262822518599707982977016270819007843035753005943593938496373409329863727645899158583579269638025927581958631462613448617506865972879767534330239578305225490273964005284433825362947385794007133084681770051687404804099921622663309586835572517188029640550228379518415675383712356081005230750668421409287194148082032690526981306943786622293477398111623513212735397538398915582995707971877834928502134950393323610519041610778267869013537013487926876769029623732044356213297992537082715668313955000695495496335072771891933020549817920604810439906580548855917628453085490225699596766869705385591097306963179885073855774661472588540464684185415576580847224788727031153385263582847753571940677216171104662947303622747090128995392427964614306616010558637970213037463405215598245829056309022499900477511033608217876836127037835314173385163569408052911155770789303031749408102572760396776301401390145104647638716064039827255329553313051280597133061139036991439354548968711333532375579612035298266404884204748253843581421943873094878464369477747602678528325176484496720222617363972746345682747785741611039925182737903114624592887648059883485928841136476225408443343989647227615162515498866343901247625574971656661723821589669783104912416681406802082197923553860766217426221249641672830842867438363996749586079614270787011090983811572319303441915871401547843484925344055687209399179462188963146885430957762694602170766929121815583825976220340747700626409536196291570441028757737981358257410270868607953085967089717313640768620040610672207031356967529049196249275010229204324317749352142695016055764072043562333859281755040998928124561555422551970890146007498753386826022184940181043911998668465843388498630503670484808395177930607110253720843529848837638320575369056953913926382475439551784698478582906785664157970568958332880942325760770088749856865713423580772718374125444446383742545439098222645174248799241465024890567181424874797860266277221740726976970333659349751565046939313313486863952904356545222884750912848149562791704869887386324427438691672038931232675718622024481563416436416923859864350371405345662526425107184567774805711962088456049830140521795125460271826103896329127513747948340449958350870689534556789390020297880176987148645851258261879875954803963375018783957695602170956471271767192701374677634227531465559104100664795450625043744304262957002114165944116938150629469882384791522851219765572747508606813314741859644367025278559128581087800075572405538944897316587817343592982760985061119189013446866496910796577974532477896590445365985414167280393234975946511367074302050844442685819408870512264294034610295341807723672306589539121729780641483233317788233549761878744058641416043789573143982921036364354787858364281901241154295474366777262539972713507691073018852894510418255339661202795561369912747061710908115491454899185295460539965206517979139225211189189129611873901887460542996329834257848917908699684319027673138249208814831893369262927685071803553971007930262320199209927165354306840156650626830528878998885924581789329233452021631190372815017020060333018303559570261546865632300220847908039560606501099141670877169113052445591272093886173969079559542695975148823618457759834693896366070687319064023883108649255505594361721364552321894682699662891383800400553527183537203989120533634441087756791107317819794304530698582362408451035914528288399324904390287802953545007082823823465102281638205860237319027367856012714137757244269227502537102852943774957326184051618871291281740146666523022057484213191157222129286862825328593776602954825273397550087121795398861237120454266925128577579604601917304005431572356841478838662918620400405085929712252698937041873962531613086887547889312471827466153851025951434381222189743862917004869944446025517677786642086052229989397012944650916004055289005020158482233319822065868485234278622535415867245042962133082471888366600967480240669742279903577966116059085420161780562096016667292157354098408588848178535002636208949312812431740920801489288987772821321854008437593269777814899882363791083619439440748084354019201778834155849164724894438367743958794378143280083909576471262981010452056495137700576909426322617979093292330213027562929134783756529059241970514327228945333820236185457255176558934170033285578746772828037818853588890616291514499731990726925693748716998470559414169024595711848665837313042293795143442224813476718521251856417435722018661891977077067877605359254589200199452560894373206694243625150381791317310614783337441024797715449378441234561491981696928906806283733970862204256468716632306991053877273439360424320219011450115459572448141390118648007987940213088053217859887457212401641101075321478893966802051761114922437889845353264168477043709392235442070168863903500950404073670887040093325294137285787003592531616959531848730989344736896564658499740278318622093016527184590353512253063997509534031537911500151211566665744006676272249714958612735609456037758483195326601491169055552380497223313310023964054379058501901517643783020661197854798485163923372510951866068412858304247608403484684135607423914394491196964455857326246271167606313672290409033183283721084385475103340247685003611187640336686337968388593829788121467117326626597655952700686028304992403439818412816012022702743105040084563793440194071923606396011852676926215699482743732876782784673051582950462801989851137711332657118671861192385787751005672590335759565643250902364313363443499891631387932018893209708845422727677786652923496899555472182138025187864517181541131557028882956989603083722656039459044164330361235917889400663439169718214227687654120148317055368130962629281420192221509171024974591892871182419595388265805721749278933603920643257191815127014637961424021375136194607008426728473711369091526074692283447235808219452161158888534130383987418395774926266761941712238564957511649895800444827426345564922682345376937384639121796102378806121689269962583908238037118893127940417038329979354864053374475047648569697522433276419903771810383345377960644389657605258730835319695666233122822205291501734739822444487313135434513217444911839449214634797720102866066203793921617302873732858414878350937494827434496190041094140176042691314145995068265491653213516150836088136460198934003941767096133718602285567245237460487267174763121052013779037033078069712827940601597346717497794294553213600342885592265065717836674791001381297858275237387663604531765056632544575275935505291347143533842057502132608953765361215475141357167015223671264606078311606287110150489396577112621366030741536789978372457714265099708164914125276239572943904044356923955548500948840688925745515213219038125354348649794681317993035863938450184934253561591138010491815399771551240933777269648461026617260547381252233581358630279214890106730028604611594964257423173385865965472994892977649585145723151148895326815406726428595108842602505254418464246260609085338410383217180635827566126333104569661933586460214615112145719446923014398775231286014436336602908242402913377541639428599458909489504933985638418574574117955858543114539921906124376003003683061981642490738169748766615365204917440468696780802699504667030947183757582875638798100830123739938216535547246399250253559016081646186114039702570227821030191986388700072808463473916292534557823014975350356195220592924128458237087591081721543276183071000979325352365599737305192254489055412855774308550872808611732424103597810879045356268417885806032715612478123574550082418585792932847747131248354548296716830034572355261911443710905345657935319103352877504814195286410818027205660096581979415428645796474770868224978389367468468557419457831255407244854507490269132878603723363176637333463013986700922539905705760395797717657377382517372047045393391021560574150242779401688505156420280630803904576688334939847440276111551772848345158748883530079320066062742366424682116086263137544584943509660045111111756570701817701327440964041556404825273293827361737018293807416337286376126143650536528806438301798313597921952754496452783418064855243573603955555131078267804008691628403762452965144603093074633485722329519597580479856450196506533387411339859887032163687437761479210608011271159711916999140795034586289980312753992991833113385493706157518002174515239308500286392972222817879563262532055391348981738270932066909726116319846112713811071425783146720336953795273833015394168020936279209745783211742333362369362409440658636213406888735818073873041642179377803808404894825381040860093332272410302066913130977947728039362307308205590230235954966599372147866336061247535928135013703011571109860724733983227047064392460735631395285658125070127643699032014276607636536663833510877326108183680083808879462793987921775524448412597501829660611961447063028358251571360069674789169927350257479117772837521512026305687303284784807534740749299417376374211305079029552641452308220514910751824467775819702116963301069556226936313435977863230339913519777833138281192773445664269057630692904723931189925218318980271996265277186503760497103197133009954243232354572363263369591292878727122296586614688675952812739442487015904364122882339129625617375238568314540566125009948578298824606735398412580576995647820653170380518849017034352686502346349069972245077946027471768071663436685160740295031298544067976071194404464673501144668665128729438344932309719158236132796599415060408988199482679530153620725821526591758956193554203615566617744506662979777661917100102350029394703075752713440258057999907743864538193777784491800283870965528677679522231050084579052047420078593071407519284854729437332952987311968556826598548214050156647091945421432406905587087625648878646653018315391872284240310739054342587604785162444792846349692797872805280057781654663691677483431385198150744026677212822717174676169855398831074685847429060739222355134236540001232377394694338582768645853850110652851426471025730884496154400625763698533584897406290821063107663373762009740701088055161040980288460640056140955822338935212795956133625367283745052508881370493067816571220828216584229854035626887485835857709152195901957192585161460791727068166326601753905846291213973955773201928553353846695111502843608604724388970193229766532052903628329434350535224284283955461875780248552688339303041093461157237554519639112563218891218006973724757381711104218313519703208082723004963815146921307866880373662809482558270752028965579446270670898199257359116229538318738542922441111433963977686161295454712122852415661242632004591547604024919449709530967043390748255009418280634242302154491408395292429255768240957474712440555401638391864759236752769601518778883137882901056302854108334994139416561719532888213463824325609760225163213719375992889447070338247280666854464632245481090341079945993694907752749068775199414995378996834315557004747078166894577774920535882440319429916468713183119048754881840461621868529774800578516602367746452312812998552520007160351048548263853582077858128067264299384870196565530221837550563297189311047153723372616984815880092763264763462205091831265852992492189591450198310035472460557382310717482376996216709607669245915759864455309473964024756949049050187910197555862031389635041538006980194227488471090781539518858927368801258975116499851284924971147904716643335336745929926236259995636667225563959939372171241894155187559326485407680539273372700835205509149081397880226860919969897498968029546488386021317264574488772880636262934171428397054657749637976766274075852304221508156407002096591574000449711498251833391987934677287668679542795915534678850813736881999383889327338490064773756298306842046614317212071593301707517774830963609116969096365646528993618224470723225939765004858688947140483243256604521113528702205102934395187420154106705826863726621276677694530907455946683491634715595721448236170194658710540884141513758475601475540851941290123564141155712970971456121593572355833769056130112569424085708155136638332770516441831481753955183255144175499810868092801298209066138976332377235146928595995476701451807794989670328401709327388936846734986374506811766464195970048181404344516396066383852134837619856199581197661072193749792070464919109984373680907517492600449781487590454303073016899556273695531469814810264220928739468177032741745983877237741680919203780261070563147260875110554052545838843482498603597531433744551770457410877929132977523440121764646329413115129363399517315380191064687158267376180106609955225065974396108502504905789895236441063758933147706172401966220401054328448589191912484652409479699390461093246832413488173276582637792289770157484753402601747324253283149640317851576267009829491315490062949638915979695391274374207526001132679187844264533542058208082585148487997504109798706449019526791957206376853042958659547971794487290332064222402440128922051217400345113903444780461823507315252551174555850606960150106201447018210247023776328928498920961926815932158861058346555517991553040598576082739761484162535033523717067123333112943469175506261013435047007715880820771934034902308456458933866177237544212292389557255632426817665467569822676998556761551328498715307814603832642013955726135915923334596043909943369471591731387719870832138739173603754160508938492397980979826532182006019185303835004798719815839615694904666991951086213727729783204858361387297149538925079366425365141937626519862669876102712369587391781059375604335571773351570949917988814013064611664748390097038092387716553971895636194061792376160781769467458204163792997218540368965119554719724635384922528538283156987158464966783275918223877019684259788514283851875061894482749348157052811611503515718371028997153565520104017985005876540170805199564660009622686982231243701837938835359450641058440449029535056655209530543015439076796374347716901937144670707795115262371745655803227689765911179797925397932114243524306589134038972593365288024939234295790674923515080191729101468793494023409431551168560823857896705012265521661493467585957254907084527148278158998920805419502824925269442527422802408526481889502184350179445699450263219014108863492035450546468822789881023729743948522302397859960448454820720033930625464636658970985378052886607982276394279451286881238091574486931311923727044055698907920500591443155531413576817092875049656536049516448384268112781713270216831520636758879286052146602017125300901113253351411964843091867964035421400727759341821671975611929390371051630363656887659557537468226940748476600292323198824126994009457909703371450639253513666219630157671863869968808387569139589562676702257166290825054702453058053977323556893264131531389201627103618334443780264914358151629494366141027818958707762519841881138971497467890310741673314786658399436292660136742107242479365847540121490932964081447223986587700390341450640278042848618146545259621427984223971500203944089265475126128156059272487319798136278147340938636724717479020244345390285000577262244605926887651934241746186260484163290059312763421789140210277806486311150988316997986951210981912321718841337500527829823735913542206616556548636999902476316051163702539301757273652619222587663104014696316358768384004360911415646815045760908133916143758247355516417821618184928870083976738652677209314116433988119897576631812856680550430889558870640054379749395562669025966347864577461341197330593528681671310462204009653776943862377041829442467045819973351266318365748510778354179009338245039492827576117852412586085703025600816427615144962558807325160875531592234358845371015969396899372610641981757292702898211531182579053528406296423821223510660168412866019853106164846522265403732628839227902194477027502042128078383412142252866679507336961140507367338259214281341183839953202920157054692288829357568050750294850576689292606487954196989234385944977982778788177507319469818938680595778732443429501724383027722476473599468676546990034997241130938460098564159082023307048616001931728307911688920069327724692060025408388349018414763961873541559021384805579053668010347886273598109756701458234207836648261729807243236990278906842819716812327990563164677492845470122151876355865169515431535243549074312016526994249221111451734436939474796359410497427527354747515544307011277456224844010502431282327211049132391289385425695175912204967641810778250878776731747232627604374835761449890356706726162853461672935641539425902549405940202467981295407937488196575521715049363659591576483846130065251855102175412178424982743733800846420314239830866868072178794669225723958560882762523118343540483894300860267951433793055480825129883200226360390195143183816616691189284524898309644571363498620069146694082696016138835334679933771620295100570639863496866725426848539834916080777946666677509888577158206634204404815119010886088511387648314632826578327643467853573768218131060843439068372702202456029914942121279256352688981763573813143133584412353302992607527676107093003741554550629187992974254963040911504192864581578056711351910380196611968661818270297397460795724742450293188648311661242463035267671625334728793334130880663311814098390190507223033152569492275678449926962825416496471783130210358564058203391394429686555669143396183073791265260629144199558108086771181159700604530517630677616604689300352455125770739635225443006476990168083852449419865713582188451412124486627283688521075884222316001669901498011742211779968975755634457170851090899302250740935722834372825977682753111804248170367335905786830846122189414295266924542453538649122898769182020314458664978127681070326733835078325837607377550734240838786675538229557858988490638951974534320984239027288121993828213919157822337584264583715297635073019485208058933073469269597974181180474460248061382222685252372713754747564988266503316381074613426946106138170891668423884275471854828833446422256301172870772773328208169524783589307644138176206113123083859174482079725620677290362402106017811647389270607452549698894848605189768059809431833082508797680119298879944446896898571474498647208644108678525433843442963680079046583429890956859386741693629212063811068747397855292518593760838029794056978725247758418975197192137394132483063100107133855644447847085796926965508170325529600582037290340549368111354000262493267473760745826624088576527021983554938743991590983497404013484933030820693833373152000049936881526240672868815285165146788561039490130466411647654806513986663363657932792525301454590010098342984467164600348690013633435062522222984094952907962377738933042075506043423667214850701133925795904368674895329767102292178202929996887820188708599779350377334872940208469579332380176599708295203989552176010974996955643503726280217372852186146044408833571420665248558276176312714826273626962311965395764185222925113336215356738751555147411613669097262999760600628775972536689609765039379697570751909373928707525417299238709028490223421918287520081187574856065676269168801272448946493759226582890819890271084808220393800417306415677509606246567573575308378225587707081443836207520477175424614452127854174163230067114668186965568125631455453371719761079858183015046868378321793191956043974825611095516652202859452010444933606121126754121728524401648393576809697016401736948545568295534863975521691635506697260921104847222109888804879805097850143422957407349506876218170950853706284690051861127620375756553515045883935868811467546669808437602589187231614041185406348107806499306253720050853964596329155799931287046121240579517267419959479885329055700563666556391770397806214496673250099690239606985600538226324442259997014485328608490054589477128881986761286690826029433187059224623369517326222756210873649320859029096974256625900239197072015681192864194300110114321208723020947244344133880000051328959967989512991306438506689213673843153080024492956553574720237871724452666697094656696243822507289414817448445184527760358536619589621407759394788994560331172748567024111327879253120320308249694418705117179868106745819044353130870381012101697719194728910610635202155317679368272116892093126838391753333259795774739673687517193439907473845575912738334385354534603307705617051566693074787094457743238739975920784337017392924337983483941356812269502157855194993052134770794576901517089774601792314941138428533395111538715265054498556506215017680788897176526229725402520334820420347335204928696474259542122791620624234293934276387670081878085732615245366029935583971502835148958454494655851285940266164624212589366260857657511044749591716360583214995516460625711738409694500012641748903425200057341613608235687779248973507435281720134022039973427804465645785022055424124337711911575285337318307651682166187999983323492927374939521688536478167457071756653477058419271448403598599236402849716065148793402797014378067298968021141032577912825171393166216011938622277439896756461203097772640882613151867003132170742094546548341526040965929445227610799486978245530353644791178310096800592843129630586484290185344138235312059485409299279412530249851991109256247678234783227777410582934583292145160690479716181615300096819430622844517367436199429405815453533906312830301614154492196271806608942504368628349688711327309453654131441322101922675827882417249701865106047046542690538322152005162605529898917616950168295155092246074602241325644480586880840165529063585318507565878894516873612397739142508196657768423366023559869099452187652189241320447447347086983250706140284429197712452664791429671443947192522012712082246263884801041619321425256053723832606651600332262450611249420158330249446942103694358051875242396673726824647894584880403965571381133636987326042522919845690036409375302754218688816566291026499848013580820599687374938527886801108754069232671215205603765825797052719757952948939980630085867711020061816025397553681499538444692007556663536407634000166973955852016468391771270970672934160342610411297720417187023370514562243752922917393760393693020599398880724429432793890907057608706466429190919215358220460360980595528398476216578200552022510205906677597855520476643162303164079565428515751033360444561521889322729512189451822913438031680430158085613884680162947294853047965592464024768259333909597929536726323899907973517018595178302757917637527190676286082607548160943041405890627621843835982789132195411091264133355014141409956567835093354821077631749417236764928000182320389722454597388510097020472560065025959536727868704136975844675392891652242198856539412348556195866606938281006855609074450935101511845886638795450895185542624146057649564618904837182380028849567944607426178603134617052464414806947579958302237390730912520352270267740004095323618962850043650590825850041689523164511697286974097478082707474150780563233677763091028205496940652440689465220117542300627773320895769840843739220168667135650750568533706541969784865113209792539770618465307925168581889823665705394304328367081511365620960341084560093667749585543845239303822307030468092160690308074230329374236480951049438626510122413576815819367259947169075886930412852137173685466319376583387609809489366314502466385969916733655823256074410698000529180964091354536298975132270071870502117894527612128509366241693743331400893072733221805883016091314949764972600283387964176547541090237188766952950698997020666252003398041650238082335691764989899690527853532457579619129490782326216454188664265915535263347015600882530753956387470494767378634199601058458291509496114882279440722339525586543585625128342014684658761181898314579716753979394975956060204690640205393675171043775768363800141577275212427324672436327705050471241155067255294439303179097366690469199352732743129151998278832874375936863881267106412405615543993366009739762679059770326836645715068338016608105703395303733400365000812106031018897007226243786395185827997475803586369054885878971242472626038347160743489678506572807011605912580656637256292005336552107793437561712660100227532342738872282831202513185420661560809226013662669795248102694959164245174379349405235992895465632369367439499820973937819724845759191252688514233235933505405010694833250675887353066845569790545324385603053978594594313015563327503573171159166660944604899829226121137856136817183670479897942581889594217855063091069636476419386375836693139753707346883414151631780262679206247109745333441292384571231423675055022719115906821342838359537205658317223904856305729060689683378168548231850983338705871176848088247947338143355280584089714363178017698741526289581690064181308360269034733830799255044375322549220226239691346874120123233005041990424687950498038503306632290220915809682362528865889612649364895100364175953811887774342733954565830834782259231754189894233258337469140438360771862819447145930538077789854970513957053308197010237769113589979790669178172354015881500079216633664198617756135828032900177354756574176269468416494824738988267638226013233625928911060476644524544117451690675046303411693979324931729257239116888780419704463279067144960965789964747086048272343259179814961182564208180427918053821788516214473435916812739160540130236976159912833000027333646827830633264672606348830261429490312202380940815982740439004859309721396971198405103532134717041152232307024304714721117198503111228146003437453159443519150267959941976856981466209832123368805889851885287183313921192533586144903879723114269030473878414407992399506817362289603583543391437880415544683981638449821451119795363821076370111586573973195090983083505106566975638063089147568043648496701906759066933319215137870734906181730374388667574094238011175809186724978433906645469492627322553377249386625024353066053707083149312068917347773308617619629924382204169905707131578495473550685576346318711013384232429737865998549683967387749256085348006775894607082741500733892683615531935512621922349201431105030969106277505006650183313350738711471640454247974935747659876119741585335009982731935142796376844976780606521934145714225159931104336835712351920792843294284578067834178754293257349316917994991423488124231746681980004203170847740330507527479594460189423867922023649263731885783046582207035576577324252176950912554874335521412707384975218243468790466211543075988350349985799162197339677396238722339200226330979596992065659577699106530474711019536609979790078570949320910611728355955606072053334037483882526949470618129914252858874913090892568859467904146413286628124977596949838903198551686724571528093176957272384048976485006108151225574657898293779468681129923710407988988851122935025124173209825964921486317957798519754616520039653669231454102317700462916403711131315314250157918210154151325614352128063425486028991293954385427192421925858422893036146033128372201456707579298635442931858530285429339132652346853819866600232471070073581384152838510234280372437780068712500921196091495122927763562862874616253267481164916353607965110797820321696148003789268074024304280848218733488196824588811593270446079133213522794245867558363482404080565340345789394168384108174475808028048432464651580975431082422664181342004695858446276149378665972722720030720248096193599998779489275506347056556290790097508053001528380449360688191304657170519557097599595148004029260314605351561142352231742249576118046361500169354011954859671813887420144231771540656605905836474599060705136399785518311171413256811127262908503321181384919709345667780828387312152159479019217278754882549413828078110012886121276234477438831189689188415630075687256180812325232179053304368376482870806560261201647957036986175478486733687092476090020123585525946383943505614702782169491602060273271254304182185464110842514564844060525203778550134118981878277482476539642572729187294497308692496901154791534213676112383095672916176658050357276092453832239710768546172971930452832695713385343090069129723432314828566755123528517196634463320080025620580032653139301684823559339407687289017957123375414691422293690277997421488698169738732552276154867422132382688411450720472205456765726476762235043359882436120953659910616216941075284810705545114569777109005423523831954336124160292165773270649523564718383868864061560760361059711138808846219431147908590397727223393398338155430549376052714859029463915396734114766162118358628394496900547735056976289905028675147141640672266505047755049856619299294472932102511342886795421318159801240184211530208081068635479028621867943957906154201390527920826973383552947335790663990149861096787585504901070536088608572577713899059710929543114704274085909536496098363196670081751785575618796106419220853563423179171279064235310114524676379964142437255372917333518095070582269958935718843643738631630079034580912844939896870661147080683017188875173332838724410076321460758705728669603637528597557860676525454624489018635938944084373433425435339664909490570842769077585658642078257524775885719374310762614411636429071828262949305725120499808075190562808923918462638761093303368263924636856623407179613338930290082386393076878425603079222184459296026451529204720007531090961792692308451158311268885845190638778482406711732672577772588859629538731917501221569048261433751477883715481779471860744824404843760393195426151414329391995044869403341649445700057619984401879392081703905785406074836552181532155293270231167479886139106675874909862507448626667370228142053868212879504216706876705306123290569944762107918656635166271113438267093959419899155839197128263299609866191269615866843925951226918126632785026498422486317545907949008517311801498024276658300319635986429741234364792756650730310999711142159393635944954591515615671782074426217078679078514171631925916112051431142126836711501919812523977358419278449889158189768293441011847634083054624220487253444320674381272098621072881848305696757219139783494718515662742968472552307546464555521948468346847546225045669611993350956642456048374540231517907715442705657585655386074148309953841127507517921971025434821834157013376123995249199559347479822099279783631590006670890155094159227390713383160513244279107722058423912189682427082713287242037587471294841667486593975337937602442783216963389165786456520550898029719568899567643558293687052854429503820460697570163914831683552458580553028509116201859203545890532004852312824565199468673933740686404576758571624925950261898504501333110365882916403998062006574644696360144280273776503210842113954640937661951903015803898709967503135066924012588527604608872578806279705896822323833331060081717741003330176434140614076552041491074607448721295786197481253107369012315265495716274120966017124798863327657108473499300641668294210282594045371214810215006883625030283935048262677725032281198673945829177650578179491554256662673572341872176208462013595526029627104933242158162187919547188930194012552003714452959338324824090418388166162598661007165085908062063025466801697045999622348393766621710967807975033610934845938186429491799898117625267846274663128817159800370499360341651655000195518700793159241555962137166865617503862894287296309225833196295868818033333994998272640113774046979216914062413241513673855689237572170077905701474986283484780277933200286479940177695716242585059935043331394127232365016646100951904251864911674285504861599489956485646654163180713951020343836979541966516037024731773441870562860307693002494128827636979120592003600899052109618396777544248978732408145106804393058501553403211184808839515219553140906126537147225851158689866337159625623800222562528760322891223964058056957546018698211715846418174561134251340787632807152237913265079009205744593022072441863319568020306151536088037385027671508000452611888021291077670033046583169579821828577933707867703442436360723008007780728166797956611902253091650342606373397887601839528988324638708258862393116669347073826852706597306185287244398078212541014234917292201738429116789568497036509660441599875403586164879606975968788215299024706610481171017260145184337372674105586670619666985063763030188335386576829120818415108279954680795442757166576937291707212278096904589480034073266749353890098078916914461536932621527254763600700119985792287656791812803590244358311271594878030728426050896344528149781493996830121630766882317566931505859387584731953605534056460167218663290868982316343426651942674904717856455805025999241022536177598304367597597789177375315205911400657061587958777076665201766582306497419087429496744266301361989172671984654329977481913215954297911381951179833199251647299319090791421686074864043086616875496535932979908957464812513080460056421377058504215089747181781827876626722780536270044018011463736663461249964570304567613593616522308727162698683139653973793751771006131871568313535412833816991382221001255729444040937490356195048029464943539376706742231512917933076033696201368402132663656007326252846522098651520731716829795461551793697957709934207708210163660665302398984126844585116831704842040816033069954004017676010161559687909317944569626183801684068851462753605713151993551752206222165572317061974847452106662719089936232938711998888714602229221777878751439116295512628802575902342792497651291703760040967698694297392387506463013230622315955887492420189053186200164454673325276014992974268402201148831539568303827883596620701377045949659426221111685117083189972174354951534572564940397499150382837583815220591171075736070198657582475784488828198347777701417031599891937321413550759215300896896620255153750588304731332840425767509035439635011482623988522207654501396549230079635255073100579084562768419447363328875170969605832515791556692046492828879404681068211675977858622386650798956630472197386813285956108136131524744431796597935269222886952721963398868993180797070532914144501538682128982330802490664178048240374655817206083035921767469383999598009388680835054707817471070239040315391645417581987645135177906769569800982437993794939074439321768145949581200520250824237032076568317731869025221844187903736036133459377275627222155257444982592384758521673744457614676108381976147293664343619746931790598138284885475215432882382053143289332229093137146946520561331078690871042399928374244197082633023520973012358324312306661325195888744706428503507058299213836854458025144849603927061941223632404049858878429821060647333704828767585739501024418025224537030496436976147601590196216920476843261549872167793694022076677969360128847234439033464152394285847929245589105458177230503889672248083784793033784990405766564375265569937958123207092183996136076602408958086479537653606958400493923915202182545079646508408942146943629878552135285527301435848320868384303716237531809389894389638383174553941690209542635251355756308648629052967314777381571216877144032379448479065065227044389268805142639498157490042436221070665707854235091497905976940951451275275938479130103027218060654620671673274683064329848732439252485839782686183090673384577972693272945191183162590600338234745164927239018229002027667161872287531549491155713168032664274426806085019173820616000326551376367974780192601479968597044248865220928070807435419215606389174671798129737896593013264449280242153411720481321500945491472666478756688701679617266878423835613090469241686005125343955849155924915441533335931148028167010053232265695810799652694612577363625698892982755681650521584325857752831621767529749418743632276592609899783705835171511401591267539914260666510083897256628639965787212283174499734131288433002592464502381499444429216610119543644896105392374046264925157759377781071212684609721406393133322292099387091191199421918419383602227677751949313662583158885618317782162965980943883090200616370221112413775555037702425578700065598356587384050319941071101993271517588012197951485239696022496050290465385355187716623223826479438186579447452089847576571141225549414017159231514134740062473881699777736305262089854910454626540555322605613211037606937573457854242515638015845899741262027959620029085349611140510647123289172842525659081942860352533286409611784711474662273361560372324106541734972785146213983031256893163260960176092209101856953399454909972161222183775542916705256410117154548094091973882105870754671852598499443959838922614865242756992605968209103607110733173809376967929885968258558648431992313512941747823162203235408567765702221616412525543476390511015141192157962155534542112975478292113003466330843424956096137876533377188977043437787034880881435017326267900413227739217170270829566959462547444341526489469599511232684767488412511024793546065764527055383881060048035188268088338714064151139387244435474576869124186015788409841459513788796416192215731674612232539697112073513309579050121480411704480289481923223974395690065173967551859639544546593309548176460391238316228560277332600359829227595765941851725729906306932911750709498375240430274211079543976103302950874739216748380975255532444108876397808056711116192989583840722822788884359807630711984113979988458655639647630414378116422697358320100847869745874489931479904339653052559965765586415506060891434507610706491663111346087240005317660437168124598935174250912488697927947206111992344831427095650010930556376790779054594821633503074759972556346133608122417934194035008258927928530604473651219496743524401371885235721210198787207529714113163509668888155822095482490997748572595994566448252811001610485458683444490194405288015946358237638546186531693781472959428065410751239019423549890104840848663933231241775078421389540473112179494951468815056534825787259841695028311684617115371118476494268221415844862124476618739324842551737057116317224612379373162732218847554979893827475129682183777209508109122478711611902442485062370102842394432990071532691218611531626843022164697739920149506294307070416291648084184759578282674324985652307471873667361821738411203216113334951047651261196691248201897497223404490912326245412885198591938684853250980368193738975440686266694598686359538025064787559907298920694760200730400773146025316062451179680085622727008295439447729337372704926111146487304837460131775761262226880050793837787276257622076293274333457894648506283309034553353247232229726944944954607481806840110778034936683221981524177274439375994916521759584007583845517019007947808383555825217400356877188136901991433619258198575091814236028875387082033945766270237715904020726327761810356693969416609347132049147022259913666136070208268557677171473373627516981114024377495266490415475218828557940799835805381673027072090250286441111540951266306435502064476016016523821113003529880349624066011584112337401779721732601273867173838425303872614239264107270413667297753761439622493326696483498982295607228830403980420433724795114611854086799729257887394189241864320390721503200775609109620985219316701162383837158088525503106833349252971946688662581401860834073517869591628011478815700629763386577227838554015979216706475752273792452427042407173943479990344566657965447327449262259817542416097054845773681158528774089467809974952173364178784178586169729089937052965739520677380980882243098893785957670772446233074862019880049807252718705049295051736585842005131448782942361589978842477126985957116978986213067780823229263723862056065136992316891427224520710589253284903256888373115285022795379941497069260783658414888068085774223903556377331558238839975723552915477487014016252224949114083216757284197980933728941866889311512434688847985583280378542654632106858846108005133160657972040493788167550327838856816844449609692163648208458461228720417538023922179327756606464512710842444473019398113411638316465761989285972654959308060166532938562821769138408512430388654647875832135218420189083853858345607011683071216887622774089963635790618814798637609497271276223894781849210526689107187976153088151023207920602134225094042662623696029191954451047936898034646148214970455030445439255834507617923618684183174391272360536736083829933207338846685939485813871933250911726932404480707423017395913508004075843361038796794172033065195230424923008646832483136642281897357230234715248255587181740370683267149849803855615113749069864341737514590413390338713555857456704697322806421457293247773423107250928199214353716550665220070564739151089112706986874277666297000312238538231185876176709828356709954823134186916759094617583593895693943776801830902293797176431223441473592780686123839260644071100177780889404225334059181372160542825845887143832582197339830901487423962155028510842258775804237305434593786948636984690451194275855617390498694505138265352797304412270656279607326586827559711803443329440077376480386888692176910939872610554499032944306658760933892714140976760032408022215179169958948879441009753648933320084834196439286794290420247025619590634190240500711674159518995548050869908620833600043323039973085645238981363245040392653903708442897772104068758584245319190966634419071549669884712073437089521650002298322417691022063438679896929532175954014008570775748577705434979531002345759547374758626868534186026138694480165400692223545771907554814661345892739653300151915661856411876051518679879879055531053093931652505211437260308330653825876477035918063959264107242009533563485875407607961009496745587292527821972203286106283070003558443048432749562677193359119129132826027202353055956674203333831894490057428678992695546382650691018839574711524842263740241257623807915465010749368835649233457297185009129330150463273602976974511119853813408686057939751004521208961928622072001198946987136177266694851468972688094847982219193472480793397712549679432827833116765292928659542942265233757168202379982791944483126148293851994374216657952331970777900296925369166991249018943990153313893124017582955655783162926562964042608430672152395700470292044506065138683344175266805549386517371768160830152511496668353889261630947591149537928275000284438502806216017270246078126808350249212881657220599645247271261768066510091905425112171220284156851145238892521837481792611663792552869823089125504697605933328636492452464634194309375178532552763162174639738097805220467764322577092504936147421932130546755601578648053300276380215289681033885030870534332893887282746333922526109487708433423533661669119941639716014081838335848301604709730898115969559976508419094917005926588329325877125637419219990747227306012952737177705524909028615243522017175234095940327014725308344802065830328400725146287639388987135006784854798232123081168767528717926706852103326541039978382629418105174228195014698964551814591295552870826557628579889383424802328563419827428732221788511879549865864877035920664571950676767893410524473100707990579834891291755808352875742507523523402553651881754702318822713658317827169584135868843759010759123000571149932019939013078478561929967491813930484621239930773986357287692506005064808817806949403387345994372180453205763746841276698419055011283703389397929872792437464025022196908313013457467422268716527461396114790367790994937117540936946872943958083563197770508538666107935096241217348748850368914125568998514335728174249432575478812048874373276630867939883049376565922070975825162151073226597041944146608388062782898548574860400137463513366635885289063025936264940569597450569895518864918267192436776639232794201554566179729495452328781904867535492462744930032987408669247561501414768482506340489160560387325995061717968205934063156070927477329829600164906277455296906374848047217411639162762013468928863593966201086783934669912261948642004969981442827371419505512244147665162776237396983185300991270631694335001374054616880762988271005536134027928596342126404132466513476425582763971638256306660875378138916076691890362258104037269809041887058638728957653886727812799765462170143181652102851126729996387269534169290432873093720564804220547251064439666709942512448796692528396540377241906824501423680180662641024467583071745062667915891575607942394324586066362125774549881534403380083455107398255467001246939939557026112848006396176129849496012019353402066988378079015297879784235972904965734604982491738210595154829166238014140448584815888375008900522380560859384270443409184953027871039397025993461951727067169323452061788333219100072942411042438136248900054518888807290537769012542701287903095088386299600816692120582119389838229691987652369015245457196215531975726885279665294056184286740659514737847212387417328316747344014640044516253610624976920496835314848794880961874503740727897647915524368055941130132053995199209434385156081062427254186535528718995617554781932926731554272917452055244223870766949701991657378147528341793963404311016871922377246170950699549408678278252623293656176088295156306714237397249102174724890748897199998832002872697461830378501500374209903452147191854271472432579485327931214308253152687246086312028273783646898256550289170191869352243860945978999344334108359572960794608205157350488608313939727953046300259375753404984931101487761071729678311073365486826041311326644452540284002687775727661985219877031580381022653865720857470872004301487845143802157616285152604454218428882975408834982029251700685415719760860093929063905710045127970176834449151222975824198675454669514299348872270490166000336057425331692736231644735599419362999733799790486989140979441261085636712761112397446167931143243823518384272574034294879387881548617026653078178986797958675570663227128665489179848170009116607606431648095504250469875447902799392316083525930165979802643693027749408664296106387272903013441553956280079258327557927284579149439069525445943355061156514165119209353367705021788843137017910104053436414457625313392234834635001629193922363264820162339551312954124522295093364991594048535295183443607120446558865353583189095712911253825120200472454061909665257681717405020481970575562814196487128888024943053849491357791795043660056217245008604113409671010943479778074689593504976469376886793159016854115539250079830760357333507549494565453609380788134626592922726480229482539103354287364915069131612880798453009716761639803781457503318513308226316200540940174157585225791550835814316777557393545205997490631363690935058742435213588659006189031286408144803262359711503588028826071410827852340786388510668774048951161890355026368749883637414788571280417505519899923004688615110978870121221828784145178762243655023797630252715097310907244288575455764354054574934780458387207528260250108744515073802283767299479921295206323210281095041701337713754412690712786464018409289594659006580505465837544817275357217856511595579942268857551031522353820977754831753775368973732108014995052434623946061490230747106734578799268979212672893318251690637592284694530038116971447428700235597022105798481784911326428210113939203635871352869581331880620360587180318273544766515409440017345654707095606623980182345771308709066809604117774826675079740244883166257362222005877293772398159899668677700023169221882174169194866676297557564278708128949007448121230663205624276421331827719043108585712473410641240328385156829092708961880188504208759979693229970232816270961930670009057980946958288615396083502565686043173067137433688560384562024887369255116928864954248772256753736484557650585479174475572454091612743341479425809663697491363466909794191091377691731736762822773966854036621158498810802952221518647508345218996954479287689708989672628378437065803596974211637523084837750372361331661104227724726220843760971635307734205343586299560236113162362225260625567257611489225268921619309501952465570586984356706100570881439509877582385895226829717487785990494236487220152104075370500962813631153946282798967444758802535616667203094819240429399226340084812720877633326392681469571862792720076199390440749257872163759744716207421791885197062041606169134781094294397262801190666835094902364130570691339296050787377410020107252277034892964367975424854943029658323628016805051570307275818569273774740720416700968568653092346891152203990978756866360434794858072595223807493145326210336091714528730910513293168751767233587614815676176256559646665083816840289447276547121281284773687168342033163584392973189889492141033705995317716783688654323905777879056311635326953743305932613446642626006607236331852185139998492380607082463779395080275661849496353834540291897409393866703473135399416865094298338924726685710359306734501543286147660123296746993202362061663329150815142899819477340643557515785243964918705607847147469267071108608969545542992462506402392093349364218131760847913140300529066643117807846713159314345237094252351309366369575140317957424882913578251615510678284090513714665121107926297196678218983397609547629366311474496495140691734407493864701847405310356409720666827170589074257729169473279440458964917099129875544640875234455073935684152440009019620740806213242120833222731608411171188580540819691293340505045491902809485019604057397900579876792832485525932993641597329146133461974138673950510754158781566766866727925870249380605144382113465148666343116036810573893607320130924887280215817393499714081552667858986690412709096100807785254623711490919279955947293593904608359095634027060208882997861921274665023425033018133901559234758668530943304555382993974293290050617847139112869625708395712704455323363171288725972377259566098649048201495513999750083192633641162210074765087255117346513378806789160383901703255410682477897927823027745325331506027072445337367787798941524467218570791238332347239768695025797880039379805413756183582298914101413401566608845188464455101243592238439281022670910468592478366380679224901043426415985581806506106786853872150976332482158798300760239469721423003339722209854694667653596466204068139842940506042258117270704373817897417621523119424299504332783976186016313404428635503695730227008956007817828000249875861767664064590493539554759706725249924719132332242301937467718361456514299997317525441524279730036717823098554257989494268773345248536401931177058534790077060177612648916396364198246250254846922977178851454680928000585036934545342556258222478185758428849249278376766830849061180650696397569279083104250345494789504510936863046572193694330754463677370067812159180914468427223319481459028343528227198490750046531361138909721124424869176152399615285257056506545854864867349959011141365617831324372256570487253465301843718578892611700289031916925962596114190182093068006861481638620420515883414358563519685146492605777065064693792769454562704115037813048224651826653251492474912408583899919150132950051850017249017615628970352392718062566232075939891857332747002899104669891415078343293933743875246012823686192449656351564556049494526944156617431032573956225873674380020805157496042513644380621920803490704164085453924790028727416571035991568118013461557557711521413309598379657499820442376067310711305921890133170927640810884783850350900196461960901438876660922444597233682804234565912931296020970726420833524869168818723715115077415996454211217336772959662397345190171090802054669530455098235735034180503226772431161161260026823889364948405082688657366726964299117039467879245543632016857585249475293889225670066526695468354663368025308445651998174583488327437082919968755653928890248121215872549344207299828206093825679552238472265874423216516737859028776724235914861156935143110630581943506208279377202105874178198346570670146381265231779904175615937862846445719233621896552582904368563420036544577324795268948283660369960627650183456876535879738323458202336505689656517239755956310979387545705902714140293174123930722715275574596432712977430733515311676224135852378939246221069826754137278530048271232722784314660956318413134227459050916355646530647217190329370743841028356580815131849364367332936639394126918335657391316648946481545605924566090188650770504554798075616248726771054478585823169544866172161628638283820652788551124404572266800103385507138069661470903043382083211480316307781562642115513697740645967522129306612544432343426036426370506662508522292010826568188964981818695899460809262595977339500378886187488386538664344460294795781806490599369914135581269544473481929140320635892553759350575165518819232274667833583176691628222015226606275147467987607616857615441055892731196040986447752343989223389118716442582700124871427141788363955920737486124266188962301980050493899791279533080234476765484717992022975672302153229025792048714418929725451546002584001435491468595760841369590217214491940766219674064635330619756377744589936273061380479041141023189841259938963033772602048179606644300502313755463580103929381146236581905778722738168629203434323952137802900061562825457459331532722532507804634098205728816967211494656332698295430577262162116822178234708474550889135953089612180262428352410713423677871231770159594828076190322568626181296486644203202913779459261547061451688227516584913869232689031748457306326149906937399980461477188335945863176618346251621290326861606200711709647969278593821218723374162156864738790093931256278138404234227985624049265868939295046399375762340546314193911400220386657330667483330496712530065895000200363677711792030793814162235569564639045434831577479434581995019077009390699534842008657346176866743290039058166530914392133921841919904453352751295349055616807739975413535583402668643166372696908049042658118855149514583743513296825630744492158725671102155060892858978344636299800626011535536882124718187628607242607764424376210898937334336709508121597707988514397293367167933065341537292582687495762565583998880431850409870254558360218348846758447737476847792811695664275365852942795203448827728685327424999402688403014709171228356965147030036710888734591189651253108986666421411148111244333855769845399588735170355740015256347129049866756643075045279676381519429909422891247528865458021492221991958978939247702064876406446703604796142834207536144726534293457596965081254607151884152058411931941955481304643428892112029098000653556893888378079762014743418165762602060507203682383158069262717512357453503381809567038240993548212917691134187690725448493603121107930589126486480841288992219491476771517656590467649499416377171097126756043694721545214024376422674154540150633451391378528432438971252966636450318150390901532220686388296455074261397728701568696889657400598777652193512303883389487903145725157897280442014181387161404648368868053041103001914857913418635503701742417381702082763007552949179934822617778567822837414549576438222624765060801681973510901586985782938534342483716817986487035493392525302461148121332370386277319952285078955164160790256052351741719566152739652861838184579385751352592849045251890759501603186106634004964479094463122209868073417948661407361523444369104530084425165114236223509040708270276986289835614632888054550118969169879368214404547900314513260326202871357392997337636886443196430589598620893123336669524371950954365334467954576540738806645254628963580128152182141783634802817784547489542640566465859759726913450377009133449229320692697255887908700218701825373043538232798638410407642186466792478618355360908927658249689662319602989537514242233831915444089667342177265034178498389087968826386852302802484009835463058296916171870123675603022480198023234591610869488164889741761551332771579734594655826207188518570834153354332788072138120037911911014041996066063575630541242488108063041620118228814296188388376670595973068673580202106282145956453877728381425520064394979189517590903270114840841778271537787146621386980001854250549497742134126020148124887134394713188894773195451107238054972898614887943974169468403584709918662341287917257495827989707127155345524821094997873107910830439710108478460092841481688178571373614527707136525824559786073413334871689955724443519574016224693387005605178435715338746330179591758628116848556810920293946817162676496677868197723623307178872120155979162648997802559603295179103270720965429676116571784746011923313328654895962459337689430281740045795298343520399029588725343012790297398048268380826973406509282647815452933996682377748964190808915555279014416213912548444123282613381220946336888767306543772840901704493639493093131174020690104017508748154757003677808414818685303838602055706589135686936946042057874816262536141268889173642388084823673290766914294669462268546705132706081537673696358390168302782668030349049673719234681685563627383288856519911570228372447305647647015220558410386738212583471941287573813108251987748527641712475679827603120239610315863474070553158643620156268868992838685139553784049054229442136179894699767898958711039210651014740155159736036661845938232338761768455495141858372130524898876094845035588573810193542754584501182860650420165521332677775687034592666798501153308802781399159720503203031052984338069932768489230810405725262830531576953370320574462988207446633591433575823028254190739067064561284302589242198316344311212458854428695841767730098075355663324177554952439454536164114332468642678853839566969241064816972989816254848091557453681597911756271049953944408569973892555958934023237089961722235355663914379236957969949896640809598533357315966129537141283978773256929113708814262387341286782251889354628886408018571246058478871548783415239957335726286503709540617315740004226326047372714635961713709935840816448775794802060845416290337122609982991371066369435743101118080616416187892845639731157807006262454115455609410013467208336650364152382053192095581201733571300947445078387822466394836526002766131243997729238882254700048991402402031457104680263743047570841586221746585837588753645601794310840917578761136779371654840996744341122217305400893980321612684089404863987243260690373985097797093752708002810778358807737005064803935197065686915726797545534024424231403244612965191180843380672281928831239227537988080872050035063141829047685524725723616990059642228348117794921917952538383893633887716684675723237359033318369182519776024155161645226530084392882988599966019772474091524685923906771212634020659593470154325575656387081371003482666991222436363650045186124383563465194961637769647135336526552194852998197467579384434567088979471653374776144115523947922673874041122524151016649932943582556265834678475141803199966670629547324141407836347389419918651079695034610192863374072455332989995737853137419224185896125161127335623722900505644499922373937746340873066783795175017852032713395505269264529925703416791916554966048085188689871810340545905480862621051218301015436229901854707372728803340386201814419095045305046181557271733702326952142277688378594935886864944141030433908800016213294720620919825471097881566300702688479778362396412475520387767759133347180839780052685650534105400418305279157426414255412286157787623290585487683906329444007467518483188104777175043198026251120532819227969623678369949039107559377442690939354527012775815054739386749778192169751260152758004295442909006395138918468016528847739842350040578293552028241425306984800287885738096923959132769908337795421663454624155141682002982192760030418264231050239631004919221225726251288442657858309422498342172490648442769466571132407072612659437996367591464975852838408560691963684938770541294271756901648102092668056240111245652707857071956392266402804327231815289353413492944109498283767904764536989126563582454003937202256362425393840346301340924809611200538487010221867914766795351533532515811101550787621345738067559250425585698425022864542963242606371586766288767473351720710711121461471090337146324942698758404913000160185496176441677262236359068643461286900699190369524446712003132199734128769338536725845485159994957469446265153118543434322772320931642577006711824039517247869059178570752811307975594574140536483026316426260202730467036406365596030955325860859944388948591749218158727464541261980388704991510476763637883343599468772210246895149691445091243936652251454416130355884225449429073793197177984955918355695699734746642376840086336472679222655650555107243595931067067935343607203719427917366767543541045868613369427277281740946692837691988247656029075811939766585810825286715352651254483034178099193399570013569792722028121194583913618820184379373301219439445781990448826344580394529462693370064148092678687946266681916471397829098757373377044794900588188122499081200524943273230376349513246154820814497682642295391419953982587102343877250202347430787997452730709020063763473368740249103464497306573517306102074107416209768579441989977709804866831769464297827728410436856078235459275547188638561610395259045194034904632663003847055239370161503977388979509281703066140207799108112127536552121193377854038409187657420907954159591106912789255402360061506445554575322907301097105629390985157288820472679949543103932889166859679684188391734513752663088557821961849413558510775431471154193179899355411829274528638444951461076758543953387478218527457007485797143788139385375131340130119415674377327291408055720388257275414680850071151817598535040912291148640074192527409210315972176071720992227149219323798747950938747851909203826569455736080421189890735375894527809827276459943485343381093912711420776612148020863447778041300685222606459095428240204980992602849016169712254889584997699667992532985878205955266226999893663213804185583932692792980211910155071628702736902303839072697700183353385249933759605190861187508122728846679969198753782748425246102117241121328199975594378888701068352933813110233203217738902923880573806458942203149667212783557448623150960283973523524795036477341247829976242744621361836738692550271878343668548403841805948227556534289315307863277503643185898348262108875586127519100298550245153374479673271444725304207179409402828797442804055359333711962701294908937257183614462343938477223181212009479370486365346495799578952412084157303607503148192816875982508612362744024882882505338677009613666098899463168848185886801459350851794442688379805245204310577610505851437712480653580293489408385271860926848002986719020833979477115397003244683169098886448736844092525207872110117054008730682030543671677754219344298529921038097079183230680145822802563046978038747956533298000876155558888610458213268514273861111033616886622199250885210774294088678453319777462426537891152615895602404863900810090623747124374385049190819253963943041276157992329154347343780444665622612881962570089317816392242587612283433537033906265425571316397656307228423484352849493129676469208976292720133072262836385214771407343050154906409526505372183159595958269194013587025978086492620746081068228179834145702148233433687360930033461348645632230135792266562955322087818709028462319078133070031503063275636984789817139382678868414035918341920787880815228580823201025011166002779118404656506945243298063332856929581004063691742237948287607682454701616144156278048014605521066355841407465682261686183086551554783745117325526287560455524969716176559800446261430882936738587133386665290825464476046847266896368515950361122987897602962054947477890305867400475257480525780420621880854731844226913093159816310335676478057059111942471253485780782575076443023026464595156567223851988626749445654577048839055575291683763514092833928267430698962711690635875051431138034993839360949802259796550091579973542152850346862080968558474241859797808968564459225084050868569131535070981235236827535072444407884243691319095439277401203046887012622453941606721779063667400222822211758603248462806867665421615966119289110589106888232640690841283689493841131467306755239199037106277052473861485073748359580447972693951442211706735061856225378745272003770666756995760056789341836986559803262206487547109036881241860068039317238477233726872885334445222753605688976344089258982953831163252675066595370002111349925575878709762515895777794810219036057311172984526334069224973896768975117732002726743252060708946265249414923382735857272807356234873828833989892168298952977740092860223554738386094815636291585165690108212709514813958959279190979642571606279217390898521737505139821585676980833858828380666840491909135564165818703163583953237541303395289132940800807115213046642217992718858112223706564987569684161788282718074775476717217109299618261944226300439354750323335864801043472319553693581066330946616887205039832602783071731976645388931457699239162521828242151553502557804327165227866300565402591990465824751999484725144046608673811235728522285993795346860066364222866789346488293472180129407406724307621085717885800728800590650882967245630568754146795221919901487626588721593086113313771522157302788720889221654496447998148407950580720393101890656224851222300088271014441063832820076089477389678932033900168440694044669156618673236101763161734744494818144775671961056541454821572394407718142733539704055518438684580817664968860310978724753434669745807331901076359017766915818221953699520780461249344388111550677693717598888375711856036728539306193932436502371499324049908009910783731650884874073160885141993367496746190563039689429030926848936574478840172012773429763539882870888841195358796936378070278648620043973808646252264350212256962005795240931899134968641035389997844257650720096643432351667456228877684969553546369361886151673278145331644981991110726792910464855442502644097159988004203294284739399475245583509690497643619143514429645914212431480928282212646973244885790529188737240719788844909531839629351575887751501066268817146229159847025984740849108470056908384642576657286192359102252772851483637781637792382567835297202795149662129621448590559346078142869613500254166538305643806874284387553045483189759581855562882250803779849112576922467005176321716019026962835534564615258144729790844452758107058402312917831907110475822892486590859392184044541366152295177476568914416878363381072715520597565345118980139430217739436923137333403637772106217784538050011508281446317737503493818370241651283164990895782296396810818166044692564320077359356499631082736862609016718922929098441894026032809313286403666792138000326852929771533796228964659451217455179907074226730014213567595286754380724292200977882433195882995641482416330522994612230179306978954621505860428241359154009214853668997028826391758587211013410912336303698774390936289159087095498167507792197681621508225908126896021047023174882104273461280293915690727268952533174536845852619220431181741706977394305015425786685821434574714423107128405515192803562830677321755348922048832711209091379389008652102744834934035583096729072322352148652938832323685374524606668548809623823022423010610338001261691503563759372731011420193118968944033451212757273896450521876206324682558068097057833382005311083024766589129418473480948846000762489197724775996919978941562531359143194895459851267247299130256110568300756377979192887217789763441119694152830871499617717188656324643736731017825777692865676166413137614626280621507769401620921438376140871066157474995430156929129043898773770499261642037893081872140872062876456990418496909166350127188819862805609134818942817647055103165767322925934562643342882462074925803899450927775619714096921679422726980712993447458056954979740875135947447189929471110575103673340619129831263059103657210910393323148748600526560017048647536104622218743824649232380423972989014495728479331580766785415017880956805621594443199216185160934257955112369846202945099251385668377066203411983818840498730350386283092501856917159129316207805518537545348463316335234270889209896552771926367766378875092260255342115025321954093603597617419376376714702152852171565017055846162825878239921872842483862703348523133758214860265521218290733350509354221958815360672829846681826253451726666375883174307633579570015250467739920118607412068556204752925760474545450124895303727468009588535701497416656604253391033176012294493907092307043133188571670843149381518782306765692238291406288661718439541697336225682831608879333645938924464923907745402910670362171085735153339906607644609016316481238290500230362468123839829899840635124331487821485681751135308476716844664285223695782830204145475536789800744725475973924775286359305129784298958397440113422648611086061762327951212334168531793838540517050815487876716892519416500693477825916777874144101149598665249927981518872714512987826239738487893118813316728990815145391715615423175042735226757780258258780256566402116465931091124075352694728553139927336110455508684107456970139900739873964554265060875998438953499120780994315937191976173984101667305217146905569165485926639136765972404638266640011956843747351797025772591616477846763466760875436079461736557612256498005541092412669906643057160608858110001290318236870213329506145486562647311356410867638317132421164552498571190030830255805999383502076222987560006011928107664070468472669892437690198058981008010073936944281886888856965593264995549550665353094621183120827662473319788616464537433917518230049194943056255089042364921832158226990727687608676776380198677262110327116798513068683780927209839625254020613676683740217524755588395897624384663223062433701833991378744552510819396275642342793317720235226403775842253711778070568120497687842967152139996255961843489631464422586225472694503808868420157247808896315487107159270615789495811581840220227251161539458304611827249664248213309793366116545327259122376325530059134449642219635294336701673107410024451489389500311396885222930466598140463702963154493560042316954251449481043619330889155761829662438210538340889759915947977211052296165397911245567375939996619821589355160946477242016499533510257604788511929475907287730734042869991720369731459088385086357482076405108470688113377771787930607984620757329018060244254349196850114741089432347740397908505644426650540084057545494257274636646133237672170825147743882815928968634711355389869492701240640397385118759457099858013190075432609853234454919459139130385649641417385498215864084256430945118649343842187234549314758680962088117092998279617553866864837602104566107067828942429368809958951015107353944302532254176532723831760179666891574297340932692931391340511123825514291465795568771924331199727246400116209623579687538303151837915961101719129673914149968026197283130312339066848792038826647932849283502715322568957877936467017660426189012658386536722233295585964520269720789661815396682111124126970842613244057197412090190087475220901825627688642906485121955540640660825600913109210844451064928334159797041207720902924588086123652203743137232444079079607252598181176847102292235645098851677314985694476762541592510960899384850509256485431314049936122512244612123431427203482129823155942898929235804154621502663074874725349718748884950604272871907941110084434312177828328480676749424110296918611657978077783435938847894557506454183000976237679471024146339876343863667564196326253358782962353115669580681438916916364814852177091821923090415268945542120685822241107587126915350288097542377817374091588405815014940396027223959037637661450271434528665458337050337017921796855357635007470113990888271836299471028054123606527060107922721960692312375581367030595155240896012674145862014603805310305586971325426591164711362559411820398226686160834992162891171030337712707049173689530512870399936911510989940986741257877995382324152292333086022183400331026421911786215872830231308049010693526605585726035509897629906050146127994479766035542240875662745154569701374777406442232103665060286983638191563602798471574736883683206070783524462206384613722663923838441712667980669155369339735676922899207594514702577226496502864703878936869609863170885599400190873978204263242479053905192151023430798089937154371120862826040387150526687468717393908187999865129112068392839598833363853600516088113690595633049445504301960576763755579186338578868041317642279972412703724716832710801665146472787463177272517339587126380190282585139733468808122521407861673508315848794349685441717918347705362809899801015286016534920373772373505304057521925844089324311082224850748404258287780333534094385747325303396701602673299047487420868031998292501608882275478035106899446783174315705248684692140830772544025506742249596001912109531305274714983905128424205443633706835401403508346990601468146301644925447552394031192671376325713259854375168010050785068099945672155401869442057904819754875631290292875014455899722892770845064169334953490646699382604990641072954241813185953307352497441725390830841625626354163003045337275695916437466427341289931433370485690004560265162662566148284472519112553711147642980064559019846396679795864525557567123193253329116963810176028732397476725105402664855300011233398181485873742556416548596508062283888621644221950585004069139565246772420964734514787105254753347365486730054456139117366675015007361083084363596706742910814051570126565649317796442433442892847550729821866854741671940354111299981046100535198308866394721405301310545946067159014028713813831607351207301320993496017105857616704797579018355515028143890973487412129797481167690038473295465061563210765113618989451390491238907332098677326491728501202620647971286882005478163885878969076762143789518380480560837415828665962820884739462377854530426394696459379548485413278236679664397127983476136851992259742527809778281880486531841610915428682702323157845655737469103548457391843669412051826190808099064997046720852528008767900620242248454450014694672729004226804515387393311549456529555158167121698987159889259454085648174064044412063225397559470177499670136739619549316500680031390566227915502800293950618245872824706418161914356423856313145328293069527562551618506015524205460958781031570035450908627763795027854798055187902561713353213332050567116933241228616736373073738680533257952456398887477733163713013588954069063449393294700484815413984109502411224791411215606696102563603813928481225590653466494998774886510729246588842665711323215678519016704360732590316102159366575647803650401702147781015803129551484020187766279080832644358809645416431551102258605926879633918345913413347237831850309244135772117696008762381240901726824275796341988659854476783173655584419455267411864501394378449236797989266947183046916656866614381328801928504299950719136875463545535489272139853019433944557027038197254330429149728027525071454953149695605436784645755807287548855896017066872523951491331432987777033528552733224669919010928805705931571808402272019099641959441574601775611458567926980882620393186159891158507338721597088593986489779563023074352082767200062431336774745126806528814987093279260354490632879704032860172891073616969922826764466973260700478861291601779042864239281656138219103087689324166728000194645275057225086079338162786632229239057930456864672610951919904282410253554973910110161908598804683895270696051267246984553106584115379821459226684435372333012282318390267859204149656299180532567492271985495829402229770980918878935208904655875955299744458292998169883113747654450671071497096782243554475758283386747938097236168778773309892173425929506653849146057237938417308177690203584676437319656080896348901488394607443164578325491258290952191706505329273125959611826022304158173231950845582269789635172745567298861545566564418951555126744075547123377117949813926802399620428968140453651538656146310717480313520727145096083359814072963237598618888154511043023762584440054825654996169810205661890320496341497009583894937978490248439227854622242278847141164336892568037462282903916061859926175045148258891415804161672955334856107320640152609157884436165109899373651069769491522398573980013708710156610014839612115884121508655821955138122186189392077613933264045272384706978366070372646270679088307199392449970622682507370190468153737377608890461761017582163444386616117847056400193763187799602554205413048912768107632597964689900311129309219087904142711665182059503036872170958316975720664147304766781449746444713972579473929514511086764914123401020902476806954024326069843284701589903910473350352028192455415233645543818319977908178654279058658542657320664138150820231750000880165580184451844523248184732352305334506302270898220204960423262546210934463736524905440610662983101277940323105668442044106823781660806645429662336480221456926793832486306862190238008520233754029977142758103301083907405964626681876996371321406275272147251806969451493509788352777628454622485026236069860382305259014586462599609504405929823446966609679354973108545164801058050503335077736273479759605905219685863770923073356069468714750675017370414472887243194051909457550548951810671871225067063783390461257423322682229192532342074438711786804680233269764040831925960870623618947383832505492873650670874473529004115578936638020551613950419485855116634768417261084689445371459301997574308805260064855199542147659987653409047643180805664956184194123323976681406954543673731289074355391819733450309241546848602262031955760919175005425476847766245590140680473282797971485394202202459662407951169588645896321137216828852854752761981439622576068229452067943675962712899255693404124965160453579672964631841044207525362288597280730497182761927038871076138099386096944220812780168064104745257107774091257835119455015590842652972006728626729463694612054472342446522812043959456458040939253359461829000294248715576508885792994685847680398657760077319508398717564515559035504033653745195268340457985151409181579224326136191154303080591866749533091255146166161652567617778914100841704454411049697227296363016306537093365362232737234648047179100886367446389694229226463254742143247227555502309003533325802655572997032394605249494918973529119363023216052221984772966933022877281051427176585564175738030020325943479348414595052629693503616655047072919354342467538415911898325892844115356089207096982136798472101779951477620193545135142640022962556982900828193042584782668697363844909858401321440550344638288989833312786235492787827797314147032801782739134202462489829656354906951072365900520130065884489085367725631375728402024895293237209551005450273633778493235281206498562032093902347322147459169820824768548993629021980640790924431916459774343843821118640728680532664274080962622537777748775863663432946575416382798637636811419825695413633132557908371987228644582527313839054772079629846635949130205725247410090667628741126341609207376236355699201524048997754350725661476818135503412814332668344716598429880079791434294257132205685811407872039100354506948140070335244821287396503045529447708325546140210277788735544526483083251095737699760373199179171734668389307140709013313182636094655625438838488741008404406436634390063472952110124418950509662653449017833686542091430658082055233301299144214220709512553494418089017004130009994013072232182349720128479241858445109279181573632476326932879910941581723635725499383933312937143736906540855874089339313719096275072082933948168114608803044027588799956153709148108410519736686499512039064249674241006485772127143185318395639512554562088724344821361349071402566376864937364005420934202638399292076463534410087141399306211037679968106406667754457464463627178076481627217118315262389266721911039109643641777721409116588038052657679839625724612234317692367358636359022103549938452491836145347629606552630358255997575768621802779835609600841303439325653777259608601651100794758935620546628176941633164026276176110797366983205283500335809887671013100562427608057139095259439228205848251420793413833808133685914535908312635737865414967120015445337859999649836619855016177818487850402913206685514309106870271436957754409521329289815207227462851931141284048777344296070558183476436452766726346546584065040599282039242827565389126509893587586146607292122075232327074385552606045631496524496160339594812566320390163431625091387519878717794417038118129114452286310976495715305358631262509147500028349324361100354034310469874547820405394844240608120300632255982330979137660799506393366088141073472760851938237458959038737491404504215235535080474149099146711910570790468488758786117612885280216336133498790754384276833264983415041606997906603416583469984462833075783054262351377881981670898842287168478347847569874852759592679619698350098315720101709918470033499403657402989804815815876445950675085559536707613597738582992336469105158029703709930445388105127671617198137477059979441183315064263479319209698103784590113104057604827416396015102701711790364018351352751105411488836379010018274491593870142010291689762946704114944025163040413502852078003506605796767171530052134881558272188297664887182794813132555215299065614938247461745510386774128638723196085144163886616498935039667072287171328561042720899129188350924031595946327667005496049997595872966876048427527492736143064033012060641200132150681703819420040295208477843114057004268374923485368790747670776020854828659810038530580028678251517810580847354744250622151488838279794403065799699245730612045543248441324181057721391311872367224531229059672710813439152491820254181419954798911635297995609541955223628265602923664140569585125346317501014302992229601180376846912229910607884750760866406512480253608458486107168808131616667803310084244027367745239603646164186767713195293501996793860034808537905890731915602353734412944110755514281129499461982030777450744018147717343970034612099213638601681620907618594110545796447010636918949726901726227596890492725928775055465666385168156419514016221181923280868090128686328126725825135106555408273986764564404324047485621017568537618062050666891199127061408485738365128808228878724862404794573094315362954422102496389690631546832168492095568671879383062135775805961990420839423111343354399536210032495437400503819029771947858881805510439988582778355143871142500442600403653845795336764670274221038284495233378676293785395903371832921043603754215526881196932771739466031087878652159665010309913685449531297327772012021828043573174168716214541725796564925315629443995705202668872823966956930967460605364119853833478036125134292035402088680672424177662879797762486437970564182069807230566391480597553127965915077437113240737226400499287477629701048695179387170344228027999798753671203075176703492077242266560914527347241968317361068616331445018548647479566896433720360944735347053509292509146595269539345203824009238141769137732663917085818863505941319416845903172676277235954256721940441954265953015329217164387146656804798042896952873668040740437131818026684407410175827553962272686224597509448451587851201990443343403829384170342979112720323333949472027096933813503349312962557111608030256790694509207623700009834783421090207691610582368312566915792477159629319853752572571172781283638634858817007194371962058669098454294638463150230357706493026151819303896359050880806860160870650618198708705599896226759088131592248013407045238726568177430102688603154843096087029565661341410864953078714581247681708771786859259443080540696356282807858483810693642244618894960276482868826359110592177927605009036997754021685971370162335301781268685614551127196335905507135030288240141401030550465387398819221359545879784360923756503511543543420039953499521421625033760937499584247140347946855710618577546480554064936263059836832579863391129894894184274833361558052614092382478666617208749272590575176881488291744864154770468773082283782895068070916273163070978755794012391432419183248541201191905123274009463671292373992274336150908865618397347052364373406668521238611164743367288813655365018408925290094065506209603920814175626615682293074715090511974059672777369410583298855154683663281229122156459604347334217151936937581407080560830679744205900211918587382343910699254486344911888947987408062232100930870066058459902458311493837662925540964343225870180374374588854415373483460444614801034001896914163327185681919864847873408348345558208983348492624530530749952285324421815235079699963422596216553996520012413986333283771875383562765060656087266036072976095608205466139734144336222598678664427699115119946056778563157749944756270727123004369124073572630410513643316544822342618179285176995808846045708066046249198660598517054005581099944104300371297292043684383585214938137374239526684401926115058489886271590061230172389903944747294717292228096888962930230225194723233315504431365524668506334133953940715695894337146092530226526642626620849232828623854209549728422585391663325875547703021534155466845601015452424754141718231414122169098967615464075755411129532713223225353919366998157196211477596841956809756897971319380009977540318436575552931406693647269333533458386954121409434423065263242638320388769819476370928757219979379264420116852934153319805679432591409567073916766692354365699748687332622856664390907252570690221604658133636635672848934012794546421396764637346766980566850380032011929326765743116295748792052923383206282333857435655955675694058437053008093087515691809123959522344669153405537556797739358387060029101883431198976096170759188205342900452606974829782530231080595281317089003915899147606255096059565602234076760784271831138427829502123514171264837060886849510357936180824503748691345828130579693295250985102315708457583193739320234371282564531775557804702887341356755121107078476972258457195234514823794083076889676038245218810669295789711737880087935645835114722137634508690813378521844316610853487382496937778086654528938381838113063017833361822755782002097135501207031917961174107848368063969041503259142013951885927245156027672396635226589234816228783257345704229213757444844163634202840812420470520601296548538238799995834072415048628309421920453328229533286338207344468034148375508113549451004085293968493561407781367829130493978609122943881499232806888564066267157015348431154878591989624048278652961464112668017070753516866037093886548347877470272232067959140724720253075869610215444679253756648271424893350558571146959695256905700008725759979708254027333946385935628540028753436073026861622973996920913711337167105862359154754301955513279635081155214170803485610685347440940182818369565601682198057892825023568591885651374130569783345959617522117263974180479787248819886551096356093981824874414153637684702419072574194890486750961348422441528215227734786366796059601163876060383924861044629214028731349475780679756332470903299077387207198879377545522095833083680732824946745894638905505492404882466796258416151861559639907617490246142029582491823704539932610300379155660307867823024165839395267701373109697121134613725149098531303170111078836587231709117895853720133533439303311991291307730505645436139696803488372094311710743543552221949381435824615244250709974935658134046158012923034401799788734800852346529316614515371828754881748699656725118001618387160935540834700203505241685393956008580711224626835994307190884555251688721903398074822119592264806120754276405340725029493538755359564191805153389563334923965453204492489316611520528118497765752595898818595835560555449676441413422562852819126868045253551895886445843864092613308212549737191647671896345278942351818428811524681147006693799033209095005042727282210087456500671036284808805244172744163019711730223815871632136862440618377123423343183584409926864654369411057279283172166110054636969522479986179520304063264369000790616437102157388125921246686552842835353584036912562814317402851117247187702627726836133833625329074456482834401906284508983576596281522022318179923881089179582981149023468436207081620138711110081496789202287841367147416817799765107348218971086768281890031951924818191708169179973961916148900417848919566966806895982571954662837218003270159768542188731015275939848711042532081964300154706225245216040354950165724090501849409536925552927936448417103340200480934389508471565465911470022776787645787174904074822971239324787063223470493876876631136230246571582139029970474829671820644544543826615622570348216035452079824601215250481641276594352202209649642427293207917283172646832407942714849554192935512462371879077365604683236460678221148711675742131963262467593131970147200283626417763532256152305753041072827139395608749952456214023011636945860164300397821102756558247816622886907730919220876100468657667116342875581575699445751740850811337643128683968764543183634790451386121214110251196791980948504182809511069897299941276169227078809180425550279470578423556914999535000419754054065405486767270035038364209335508196860938797774287256600226136236982602084655187170180053667670700963958878947848568544490552558928032558829631652226539741877451919772703208826068907675432371649589222302683352983972844771235468117660684177915492692939092229074635133810710899855568433249249128005221483721366727914736061612650931202132972711343582155090124242430954051008036144508666034042098511827571397120054439081576064546531132048941694427524396199707736040854803168069562714922426283340413931817410132442106687310222353174758210745490888354004342135830678645207351015817058421141846151983705249562471353269094691875411032167320100783108583143119463859539213057732921106891640630744826381807469165152919403634275633879061375725910937557604921788170468823829879090294517486342785673832026633738608489651099661004020062489905356842043917290594435011077899880075727756558102300994587836385834953269005079363515474688098960481192727756354902489480045963789540732797478920943910842539145459553966746920069136312834745975183190123487866417945046449339663415750059012660262616647613934523285679196381414678040344473759668924328455960824100746701576051658501813552939989842650866220287497825234791408856955535954039519342132412156245859039842837323821562486978819994444086355854709542545578235270198807635756151251584428442758096086427595959381994621927599689721399166725858281479694634054259864393343638763673511869896275841048444508304255583873475510091303728704164826785616917003861625986947697572401502209673338250629620028321684989439714350062226738395556710298100527318850989766405083775043299935492833844709965112329681418887766525613786148448125286136636175672915233212281942355815735926897199424147604197848007258517128957154609733007398448514198607210874535226393005214511878072959785901787678673144803134432811877785753805048668188320530015255330020424748849270515045717795213207925756454163177205542274781586108152851696591833342190064491221736904187277709073743231774916395244018152721928518577630839967218156193047037404609277524258145748973553148534854149839341532568939162644258373315917977770981684895347966054020245405325911078126114372654443386926653572525273140221012952692037694698819790623778466439309638563689482025353089649651795050402770992055183487209996627241357810151389144302222434257040637060485706077382947009488268972797669121313412867093193506590676982774086172955169226252195776037866171541795569329460632234349166428649724418653698094931529386027718456477773054409981369051001844723480278091056834887523568592343545460543542983229541358099970780278508276840216352377677469879021806587620282494822004602537476165921042942652584129611428690689263719121545941466017458235177876537565718727754696458842973992193158291699439429073744131419997610713184919015648186780247464689453767016510956406918606695159921767493931177460582955766023944796138362980921529356478629156890447672223866416347681872041684615037328579431764483960772906336399970685189338729866591760067708885508275018652504065569499447974974351652974297241914787493834665472927936474733370088761056219174792862774047498274636418349119358511119521406964044294269912977160752463002777039053671110951449863877471138335736640156653229211530037752016594496717151428796709773826281996382451177801612777994091361736803057177618930905120727485692919814407511503173864102359285062258736188490728517979013900068552148639934467268420586850363783217849794964019780256631321376011192267298808557878771782753779860426069273294296902387695149741216379756772599713077224471977993086679192862460176009546300966845962491044872922922020388403181494812620947378869662351924188794185301686689302650348604994226450477622316088383747868641568369009988120068559168705067645804933191261459522200371048397049141157630520517536517979245735090160332943950902709044848246171731263937355264188786377626379457229554771860976688563088902723540964357033915801445918973043253065869824575921496209371463880749604548728990600668281148424625188004621119863053182579145868376931088155771638907343051428479862786159596421885726241186542464433359803814082302757672661606514226872952150378581275037556008476867130138465917615602483647590605823608946858071241404166803755271859470561679594928306228947424470534796044911970861932510646725681912210745143645436374087840874194262821452684207363275149745584761596148038054091918431180125783131480909652164141970907158113405739912376047749305498255511458841214581718031100513502780059218464539550246898019824026689980513607636672497044164689357920848064422165017390272146029192468322420599439436838202968973587627414420425708768835665311137462047232978841642048833432556655384547111950147893896336019108680840708231014242728097384443288321005317444855294758037945554680730416395986916208979309344131665860754124878628805784344454300517763190875247028107390373089466694151065422254279124000868743646343581895638963824325148973575916505902233853433026022849867859212286736401957905543409122467654701378756044323708858773605119069951179513804126079411843558406230275419501519117482093439190130655092148118238747183788349649319825791513582367410972010284785481992372689064509677479801528508771180459560383923664280611801656951098627425849222375446934406374392255980104470719180762246240878079131970424276049527594417689201307115545758726333268694411477051315578039658464015721456032647851929952956802010374532644170228930121249742945320549511977049999882663096202185499265607425468577617967279290712191597722439236211945906780839643623459915204111113370060406516289993475765597852944978835484380986656551286138359116065294689900337982485564343703274728018317573669414765398698926074331361985302095387782293628610980614919449701445863852758282249973923271071752672054912495695498796248075769332535942889118253853679679296976036058492444832082983896419071103888419305445295693229078943715791038619592146675790370992054743954170240714563568647116998586011785807573057342374107312917942089164863216926513298020018072027705624831985703620340323210792353223284834835633224301579674037018252079256870899359648953243953513276523813829764732716819097701455726393479410883749953858020499048007919039615674429486148281596255947197658951502702519282351215244687984763255011838069354099849310081468974989470522593098665854467530572678232770703511857002984628125602552718017508314965466533441674583288754234503565756036878793782975409329793178889294176770327605342725982500747048493043387834754994599995602915742449439695175957160267118242663623258017791465475335194089350458497059137741375595105720691896295011716011081442326384912296830634744099543997911524330557614547880557990403500294677880846376585145042362664463644692909832896549256811422903269617194428077928879813645984336231970145375866705221436988226610797861113967787512029915953182329137779867713189704855760788401937588266064168905139724265135084564215742152445033837805211355622238769803920561133915217611815879467784059431843760652286877166311506315143670685280658510294341657091702265827301528357506257390617127821850031695647434029787185671506587883870628168746892956979896122718390800777474594360366227688287120557778455233584959181549066918063388260275781818312692598313450310509052972870881951467262478929902509957939394323275925148242252041457966742182601909088681706467351054158904608176181782550611746546161512502142653676236632153419789239085828484848622561815183742783408263889298970022521363839529022345649976670096413775733971172837017684436212831764175229231308195887722641959093261959563582739825782074528919402722569654139133588646375464262845282248387567576035467174040223370014963353724696406897959660532008342311213300807250467284360629480844227106469352620381068402081614210479710539530284162280098049463442664698997036947717701056951468948229010787196937901944861410512808532202347466626565527556312705647145186435332463285858187344160104902407141839042584583981640861872805061092611193716946501833831176604168210363236387269154180703809273448444717299249645675149832634498073526579610559245370382453030708744354917449925410961639008573685469191639080221485139168434941410150720212885815094528724277313305822920474522517496085795512471614252775069875300460359622225060558093867299225429399864471501189879859108090617086763199042500174566392808523208696380151463385492580153869273994947379180779240859863968652691025882506594031594175291216882000240007911337453327030294236673274697907032386563428579404804514492952504814731932755727753509697494108194494370683802289939143366540793878133005325387306286079460491436247258625807837385908335617083337944900729584898602713406160054727967494298990779479048966589202867437964664354221296851345815898417468094113985947385702009724433468897982993688255841398364229269959693387256443139101825350577807119602396582978583295004118831812928346916841140906374063236878176556410798277567027612672575180222886817639312802362021148317367128510328866730265153926487125459272484606976166793551152482650209046924293192445348680439789542578955538757071774106144060874577120273377408548553125232323243668002727968350318103402516674560630078308078935080060208348607712771163485706049113681796733268375669320508219810414359960044946494168994487190159869454417008713399114491212626832706182759803807178467704637552907069974623464075543345693029436214400997074979682816852917516991727170054123126096043872892561459170634080551743688340027360339933568060474659797236416859465294097733952585796980291600411698656742117260167846478263635313669027497967962726471493007482911913300069323281711633933552016868123830032039381795823349478741093331992615128136323238694401068064420166638936970456532556978772288310320577982684503029031108928352696489235036024870955043074800441160877109616958356546653272973135937516352876295432876997988488458959861262901493203109927908947655200080140417177314229423235586012075046131862626581860199561899517014394082187751711975861279252737792651838741613303846320741467262560601246755809777505911629227100148435568636124552187776717563525442042258903925767672416529834119431990851643978972703058218826254946640966776197978729242214722764005120585699276243872620076753873138289643888467757729008273059697043408444027995990525360056785072178629001829036335381503382012327665187145575202648015815493490813677208418602528804307024471678895827471331759928123904905399624039117040147496970409558379439853073155076837950939138161599911880630158338661008652615064687764567919760588502772799774536644828805079173234195972128511633322997679678043978797433218645855852021494195717603684745214602658305866229587201480680916696505502340732087063498204432672298435211530600217305556017563566718021919193379707195275899157988153225809471974997611937970636568006589340430722039459215966495088684261052717709863700663077911066729570806097821581940488574122180651254078256383178469970251653377633692139232914812477066308366748680520523845032023328767584001801513337940897125727760423096369554465427063969689226848018713029541307645698039553560446333723747422980381115187853110057851599510226989237976880903179730688799951012961674306774595804899369565549033323464535017177594382655413481092416038455585186976334454231999946825997333868288276842224491135241386381233044012130637501226806617573541458068741240982967636711016804358371173243542488129991978590692490754304523208806292514940696029970508348248916550573641335025863783893820171335858689942962900801882497301138146423930133280880181068126125002277439196764212580956309037632550493084123484576239746481496304049202911092868633804855386908137090787322041193517587234478109210009525877560926169636758098922960732829279467621798777307245747426956603303727468844942979122282539321155028404069935403744315485556175372588535898140606535494203514852012242177088944340477652669620905837194203440680970075491419397561733243209267747895946120675180505672774310674918893210785845741319469065059187379127783040130555667299320531092026883584363861447904704214133719038945462330128450673665315533974167414173405683450288695936210150649323846129620240703369569432590929708866068235404948308728909097017471214909133242811161826253091551468085055093663891570078679222468523423943988132890069647487687691327158645917110344458109447258047144916781536043898961951734392624388015089929666459238242390588957259854808143357017429181683676702777969575029551128475157982931948765504318444196884303303570266601871451534077643509622704002291019284690856101363507848872646409199410797234102777842672854185054009426205444447027273568455777348549145437195453808996406526223928655577392376671086529499927415590502555711568062173630786043038826110432283650682552383980892995756503716447481732727242043776786919336726777882923852326288541687261924004895286203232040299845083645277938787294689984052417049791178031282576842121855996900832939356752096682123091302502648847393456535944367502677313988927677754924667733459517916505640272396205444624652561894081287459298004417861786776662366740284494909961600494737516020063133713785793968647522270730720251703297008445422076838240887219908881313287268913218035000593536968337868783312022090352457443895986219669270824790834160076367805087330189745805291351137031763736480627466314610219038957912974789134664110613175368335028319611732246057482071822931651399571947830960426723410286060542889822409507893465732161632425300543002442690116595035361785369035471171089778077370724857145855056183100588739203547491385266359434602676970325974849982752614012819204677754835505530828366218608598227937690869008727856360117655004891027741729023506782690080878912719856855092243302625966265672156809784204491907716329141837042770791703124201855306525466937004450854403579290609174752191505057640845426239292643261002273991768535813897343531834420366330180517245412177752814955547833464065918204382798892573015627055020693845498899492221084315369120023675983615696772279803330192014740012922839769472862575870673104677110516141851558130515608077320310469394785782656965594777416368076835427034031452612642920587825279915020405478904570931771783393849545141471856073287174006416553979762703230370360738008710403007677352061257727812316243837268109450102620344022454490330456649891430643575638164159133748076912146567917757893213218548186109755979374792574314814654037528113644118855252034654697887508044122240901980564089011824920449443299786313416008804825654708486962187180059443261184140672986318021399502841941416696510305527208469954985604371400316355196836001333909555868940611899934765960299145327137946272623149918517042385303170057514673590349520081591437932403896910954965111206994425617497153509816960911871759591255076110271818920791389291257920179283777741680992618977952250719215170189127800793020792342151088804069792137056779801688803928066081277306407042679551459612945895977101122823635652519967789373331568947977212393940497068711131704208686514904135444939745543124240596486650770438677033487560580696954129799842498326010713519842232854052746528187577840457915662828557614225764097496526607064259420023041707977205015485807656106205903425465986497355120554862651819816289526743520789359235649099713093534684617797373367415711072292200165715094389311554588407635113986700132313510620236342066992584228391827709005497888727728064013787151668116462017893978385567093891804416664674822028601698561610404451723508044452608165599409040801048065173003546619874467666542008166230942364672376532726695586194143472709253934201229468490860546444242910607963191584235399083937195709404331649832988627322042710934312381727534845509832239503188265956328414207732867614237929968208180618740257160114165565468337982240333833095995126232616707892028797892538881195030823892648531308218226929840469323692393405438196904672795633891590884370061422829794068135757094462189223140641500272100362883029076681780309191712005487265056918376622792516993316445468650008493554919531748539794320877981350677452403197158597849226638849117216852502678331937332278705338357978311750864785241488305393187356609813524212574862973294910461322552502338955123744783291517948612378164503708632460294432256216423840127374187715182243718464869956418897640253247373759797097452660279614877445868362299797682620210804952786322696046740105997761087900968003181999751029840745082106913172842284211078891198100608298929638594785023279034194431768152219482641752345721341888478501170821109652703250423868288790180078264557351602953431591143250035446216186022678056410614366816301547014435027106222029152421641560108859595091507756386179782630279998662242387074632014063520635771838096810470979865732503251653508494003419961573785897982362759920640499678838424820917227480917140140571118833152587186809862567417385865075419675638039806160152324918167552694713179768968628388213960418121466381324956602153687215379457084519924143963481770177885144132960032067152256430809656492384994023682349633512290139518949785535998950491624551621403783879622945431459702082954587668698928833188574870379677194296308161500368636040269227414736676769311145166342340596244318163112927887497894117693533628289695006890458258419856862440296046561583422485903613043077274007781100418744238827947358163567312953651443030149069304099985327065113052150758230730382439721029655015082754274878450738114359420046186606125894121391452369582691781725670504459889481716396929744094807478043058912045234737107840987979909032423020987122293277796525249438665146847575466177290995675943096158404617361009777456575738842663479458998642480338293331948300718809006913113077525173436031971504583813096555623236176266797702000186399116510364228127053422057929988630618547503235685991457352349365399984282849490296494645660186431672298999118705646955686126869839421239931186617574405810942871088044337091920754103916371574180200252338488698199307601522997383082345792401680658029798408744602851650000606854475233512137819106425266194863427942178480350076047430796210301055750398947215310280936682998980934597958050546278472046351960345459003640314823751859729053917651086711287216224282781241014574629803790093376921248544203929818764168862897152734014504509266582276387179305555461392851052397462833685702543206754349318685456801679958296140867605748835401213665688780102699697456428680192036092474571240146040299258009746612500753622257570359743230545554545388124961107953885222148821049851692234199322534498637497898011867538676815731962227532831644614694494601697745481989147228395835322874780930422209945577911033668445753408643433357299315113958882098827807846095391242905650443896064548965101790041797174111407908677503833692827730672211015681836153637712530430877266908887215777757502023565382341471445695019025821074409456418448444272044411440377055306363945300088327882729246366817491365688010674754388841615780531144486196136737752875157834027489409236899272815567444643789493172976254117165526957592702177651044441921569013904188282993877229388611434978316274272280457114375933412005164475536586524307163584229384264571710370886868916515414545790707568754036667145870820049640560695609447758980335434739854039594889172199202075985485329938317105269322913466057710751291926678813286217132008226890329493683151327095968385006573910159647514848829827902029111991795874934004419616576896231296510674226614568635144266969404114587853777063970310956455307209994947498816786885884769635965831607997385696486882958310469614004942825695866477906054703494219205558324283777398060870613812129524416409967813989109189930752565979059018511161268506867917654067740629146312205382009994450351941433421434254479481306350399859469748569000200779080354201319295102239497548538951496547631427261065742284796136491458031629625436233758262134751869131764628747886658830054161319486283149926265344297140400405401320051925818136047755946868313500915218557723557054607742562611932548003074926974644423380669887210429820835152143259697321072576210044112838279056505333432890914816834548040366907618494194416681660359222372755501214688824299272662670989348045044451754542217622234045386351163172301962429286404541442954721197220261104216099029783259040648944992204512810310306495802758511604757249130425766799403506322378818048010470136683920287329658510156948005822042602160679264715635756794497127278550113897820100235925473857833675879377402619023889150355022852332453118384953753013954037451070285699694362469729339593752231528920737169705431397877691858928218448631728620386106805423344866252616327073913883764336156687832176051402463037494392995821915067570054329587970164252270590718437769785214896163520379431844623715717793878882219406611456349734260413962006500730450736609975011394183660355304312751569109888143834668330182791243644869308687509229464600170480186838312859244393919113836692854103746324451485413075083363744339264768870486034849553998206072820074108985789684855251444554789664443015379453695617842895530693152543968360461672011549709757187814899264733568908293828762226153576262227093726556959378580627546862950353158327438855649774197982535677559321838139061164033996271623910857916822063321943512323915764078256420626385826494183737100186559384801744875151951731293232851313516046928537416681501660070937419923324245662012564376928149246399922828407907052692774213932361353774741551341652023967847508974403793413983068413336282782493504110831014935824418119369843462851957292082602860449123331961219322257523839192131232722407490365154564553639910780037114598602823021863319570459721556054809211990334148248581468655008630575385356683916630559056826538150235032765841814299053681112680990169435647186541462888483408447300153928337472720909118452427452539700088294055420551579684581520502324784188595790491589249970931156119066785710607500593721055864652698900071134301970089643079937832511081552722471627853592934477770292777902625392078356217405020773980291796354111260914987138997643162464951511511824988244872341972766558509215241379114173622692325047988024592033514315144980762313286612511010326976653166736370584199653266054498379624424028878184544044060670453660636283212052468016260356095770410599427109462231206589041539405539544626566889842308327905908181048181699597182427644033547659855443765608165550792783086409339937116934646823897539840278138601077152416862062283685413353363363900441465027792276242680813326865154682510859266344483616947401789356371556637857331730928443941142516350572608124667787997278932017093476111201819247788160294868791395122449895917223565139061640670596478141701360664220869205014850300934495996535208573237335211980084927016974093556884648945260253183683613205374514708023600189276215797827891431493760199355784389152462090571733763890834233464189589770957803916057587762271668050521779459194071278488903383875282825834077628973867169426091561580496725827442068037614054730176609548489105359248172670766662363067258421624966398520915292792786705746833696124713019620945288256032757657028583202490428124013141126420180921191731574536054854983139585825754165655218149870458790444806681603685451604746003524664123436105887464952734771509036085483860868469835059888818648435298127553874743006955151655352735890040943866468156269363963195303675068288839660624823917372235822804854790523496897330222644387784750214605937741539319145172708971436409229268147228543319124612086950506033504264936268133455390608254389443777199979752099222619323421681588134876522600372004713693895619640525857772758394328103571877257301222675128051645539321579667250761137867057604552154516733512279632523579043007900137773289271367954708899584448551193979134358244675245495966486113335079670117703239716417409027015813463728865396268153064021612453043364186897014805321648772221758450814250403619662325820115478215623004383726305325715772023716873181027694525622967447658065300193641792539876708647831247250098389441567564691417069301432602550065869763036674967193857479521076751853337145615940069449444051326165064709522178251037687285801380497777420920579506317570351242389060070418438317731252559210244212517702908688958689119711300669435402191513176025909274978099180297025956010696905580402381641262067226220193258753960036383465293744414491080394034143130517689046869706548804040824936038917415927580467294637398949453580614823034154428234884556336279033172231215054443986624486605489539729237372580197352858977340366729915421176266989431357278389924796849108155675343445208410334729599725545732515781173554070446564646363244720157704498367869389412989164916115313453566584160901715590329953175658401296077202123163836038313417467267833241951404093360917747536686865372521896199290810480259867073913574957114553297417203413929484437873416451318951004590754510381072613511170186293857156999118273468741858490372987829507431578433997769480078750391627555123558601740307322670688789583657267235012825135230992010635066689906765955627634343218233006143415520819389929167454334981993478850232171956812061259845274384551999503244177525258091241183989815252026564289503372595271079401521342758270894995822177282516300352610965778601977409548619518973559744936895798467465645945016384547348251428437711699983542233091567321586097713642925250151278250451427422899378039684887243489157648430410506865246409141098201803393539252477978181273288776241541293692831287155537308745492711862226243562836870643728441784326096035486428251203253650169059481842641797782968680575583166350173658322870712513101169533582999019722499034608746849273800300782765196454714264873579285218034634525479513462276905977419468289742281550436911879482362820863836682772574276799337415765686044249301486974773451871667380013125894622186402174276008073868237486594136407598690002755349957069207898596663145087373208253293251226930159791470656865634989921291673127701294351043452287812966188857956429227491766180303165337450163521646803865694945994741024932497137640777730798521395680211768250351239755191418213709505530725222050239281498017386496704063149173750935077336144453232826202556783035977013592983120245806907098777722066497939265061282422328193401910080826445124625159532327628210820337716781908950911334437112585502974870670737257863239308459239769100214075010055273151443401944948007475430577977912169476804519223082719555900146844060902282468467754630180050238333099522415553707582933664247481392579457616223178999915155897377504980880185164936634483434225110207099444711273992297305369847553516429293308304144092795630329044423934796398381828605501885855941774407506501527409192648258601854991139818838216586304003553568373514767381491053227750425252904410081820947945894892237604877441603175454555390659459158609694241761050935645896179614468839403176098763032134592798255455038812971473486186088209971629202196275737702188004099452632660001168973633748134004280325694618796230517920914763774379957590720197680093638007269115196978767566428768148036840034441526872826256373819198428988808050114133236763734946379619332428893146597010238256521017534077300092240605893898374926848190137770415174419203249609910230461542182391275497819147894268085795422621206827247244150329012141986198134867968494457996237000176295739958744325914596023886033673989616405105069315777799203387641768268032998644648370157245511291333211905051794127591691498435594074541193478490960434509628372924920861549395459301076986124476192989470394363641999333701217465447059123054247047957142466035000263014954157556795175444671218960317033171500181238047429845627723780255212739361548049003606194054393248033310583384394038036769861084177483411667507977270067918133988890168791326714518611185189525749931173131722693444940764098527338599865735806023276444403929568905387732331362736905408806473770806683382045853795013130396885521688764497970983937685949307923521775388638315069286348492695546458202339686671611939220087371612427483803814976968372889294259281493187088812221396389705369849593308110845375574451901923932218556156765060932541585056372002223671412903656253271675119826907715013865405474017482945709568385398081030199866379831297998571246976353278194552023606866624363985634031862405659827388200009959069706115884877233131254292327684704214522776512113438436491510981240953168329088506382740889812335374942680558481330673993469429238998495945181396039400305246051087355489780833092490687891637051313942688942509243298572905278303422900118785216857450848135700328521280223705258013825276818203502627524154721555368757993713196646868219511303913562198125629654953616807181577299326629530801548762814105888867482733279194280745609509478148205967993507211659120220073917682502493972108208679296889246334095601555199994468724995071804637795676928875664005268026594274002602396965736364160362572830535413349141286304384747776746251181594092077091358397325114552821451854900578060602485490129480470987572582657516302355502974373468529725770139199661503420583737499645592015034897817852358647372318005489873817506260836241302286163936706539701139474625381574141974890558503483429601905499484196992707353794306264199977143768179996237165462602282079706037005164239399635647901010561352253571578456663740518661332122594295034257533958348998580458983730309264960781094749354523114853563833793327943572535715911120741357626229679446305317955526010095539637631429237434452489852057254733344862068978403910144643085244876626347219704900264989311611805154457909046821935533113605660797381456696813436924936553668872854620211400986480607248259092859293240493387851691515977023399570533342951957859759642933144456255116291998357259386409605995124829811527847180369823875804844111036330386386755634497489436493530908717637177856285463466465335269021591953423965052122703047909696350662540176374417597019456066775027208428630064547644065584627556901826828409420075236739366399263814082630818144351033843794206046223991975410551787656764509002759827539340582172576936935453202806086057830257052982058647190016001781955758101086505695959986195541538775204655898103608153122811674799295327723108755254596749597789827261446359550261011910617441504093391679372283605063003490731917232534036100937179534642286929978534251873632725531922069552612561893022186478315816724048894899918570452226145398260704722749557824645550295182481838738217000078885588664915762823525499329559242351545962200425028886097945575294595602363340592255259292304271991616047187456350185647224378851974282817870043146809422791367430290829687277883820057641178935071874918528016225576261709593284391943507333516310895966061218088455906405814325892186682512950057153404205019190655590236921236890058462230612163929857642735771646517535242448513336322414470007920024826350521662832855187454615433098739412764517350530740393200782663352484497245111778838863067992757972399062778611850442386023341163900710362738812869682528236844876571038228567261412080015580477892807948580025490454296481177221561892103883971529233613760321328352089613839693032889427919812265968744241313523682592666590363028451076554077757731006658426161691668644533061036850814308471938544004585434773931219517044919222142929302001168618747279734711861208535476435452116569499332695142401333082125972122185612558913178073895666850093422640470213828869650095616997211569643061411888041924773476212339715149743117090085767808295375541611376704403285355084248968589769608064629081737476093331588305188659310686323973983870856207653644835800377002190033449410537939683161770227518308615282794966089259323623828528213365025103113034477992374225656990594008077781962801440809171117484537030429250970265631315352657051256988616783114083264551208448909296148358219844657718915583032768021539952595455455393465255413223279420366184348190175057701215068307138614514519551539617993424772258525314046557905931719912386394411376216894093934107500657200058428366574675052406325300696075761299860896723155983986883662014827713686939168741516716371991982979282527380071708419580756151624140771786702409811767473463301689294800024508987255308723480589616145381105429480681179250851045439646144998942821076557914280653645753014147986598789935966834031790205422934132848290391908214409424650759031068573516664462653177084419451495830370130786095620472008713300767806325651073557654594716261765097611561020475461756244681459745493538951957637421309333198516392829741723393233286399767631593045691163852220496123477963759459763361637529390207251143273244617371665083450272838390005277349672693344396155481724159579890713894030300258696119081536766234415756444359984852824674613842991798315511713766910681227975951364999490356112735428950793363875157626526140411283888619719635959030707381592649001848684970444995912624971960981183438968636144332854063917701348219024898751042884735892571953927399557834586035589361314966092798655448201540535035003307141571878193706449943039979920534376284718914023865500956737917314138721129691732375067478564745982458769538103501250004958032812355818363021917033093027822342274656733955117303449250342407488358258959728237206020938785645036520089690964747374226938429842265744853468717305426899722453806647916375422114758355784414850850300154193833208323508892073441808751498838843794254945364010706041761481750305958336986268280405325202472222908818459792540860333606147128473150321941033627148526323455190686644944948689049302082644913194164156149095602765526295334356843311764432791273789075254534750309530297853426769090450909195721270125868999213676320031872706593991542639747545248404683653151248259680473824030116172273568184164983091484091632111291076420902199258098989492687375467407316891666685993157844387758040984576625640800151926612031232711423446306841591077180982396514442545292170405693203299412552386837888448723187049716430173411519895497576097761718169406416668307671448972098764344488390101740851297823434479497694153181868731534465336278397623887726334642850202137859921336968713144774996577966433747804796842428973883791183340566795769646638394491880081826458942037578300424119722348038292959262983488526957180562619841804969758880053937819948358402294126631061826971311224187319073902859744095122544693948705735362481810178947258595377794711748594781733292510437291749057280155819650257214751723584924717763901865829857042205569081364284302994094307332709249525609404776924100462473870580028772360778487507073745970065878426022462473347231072432857808506117992547413225678542457674971829189518778813068721137185976959767307163038558873490944905620623950718635932343658487234566247384079706708722557893202791653202370311322042460925746610507585650469116322273509366923391188154251573612056662278511666401347272834427020226945620757174106289479849908942800543728906696689819197191333428664473776925872190921101060713429642541275506116767034573819932944817743121673893784674648135443920720207271299571076108167646893621585574833631748121144626916418003490833135102690418783210414467288135912602227826955267001084796937744005642081724954707413490797681037807239558984466505648162357476367281731262978092219608661075100031989817441614467090668108858849710874445919132388679610192230833445363989473032314563796068943709593487291836938997429786167757164277493594696038081166584206790502668633716417020569560274450465480957391264355256237656693655929897439646407380846615568764959694124813763799403694957336561844414238864308702715343525449153991371670686027909197752632401721633318263430524796212436911756841222686055100167758274394992392409446383648758744485604891244903395864436973107769644300273433365111489585127778799077813368384434973195237994284586899198526625740113466464067178682054470805763829922383912658237500944671136173159073055865758647350724101166385980970013268183269831163085388689656503015052885898624618950227751433383523839424335941445213870039125926825854156312586839458142359387115822395249720876203488408806272895096716361425975895719586379640857554035376691757355269881517824421512243241506861624117515171920521795273271568462486069274275053752671079860541159966934609132356712061194089565181855294027314599562576424866286436317125884937459510529227964047625991150631339983646321712077356193479890336984344192811097275813043584275158361357630341496586325963315128772218628325145431474159464570668987071523762389548682068887527201479004892423166890348256670484110100762324531112604474317970973247335407799294761251257618721744859488007507325662535779858488791573960169937796734706112252853342316192561722936332374202160719658494289884693373108986844897822750609926731481299401595657043775441043537492903778020529891683085097732521219042674645776531757967826130994874906530816799796476397894820111608734128046898953218967347093250491047240014805977395059883865571703762559183948057141981264339503098902757704707047461154881617029415926990105376265063728154607260745035036543886880223131705506975081898982316207680781627271839492223878418352254504112789449407265593477022012218374582697373081002990229578166326979274401844431692484831274095622020578473168348951387725022519467890353948157369406117139568461118910308639448990361130092388421896329285218264929470317097520472302296017085369554165241545978700381995692386296995742707726662128639241890272137876214036718958779966006297877600160348392732119298837458571420031906936283922102352432867387275643446469849312340022211106040635459842167008942234504253276858010035396297437076695286398838099910544788163777732855895948441317655570477346510752030145597516257064954582140990225095576480810724133853237619617604208165294228396698320645888233964485797331357322566259336315761135623635310840644073480451181258643586973518517737646933000574293536514338178663751459529738384310822386978474374912553119125574765942790603391942302702194622083964361622443331271735681803101908562961379120067675091006823593427473766861003160721582752873066333462914376884965907781010874648033012898729042209434673063636447229956141156817862219686236858747285466957036396141207088214503334292928816220521119963633600026022092733511885680643912889472177169845221491106652992011535140565561354699232394161628524257105823974071856252529707741392518885097659964859054721298515663951830363017673223502433227169498902045805954700179537964242127824426162144598162200403464651858879868528805627036170942743405858699252990341834012837355818197299870867589182576035908031848428730276778281334532403085592970414837379314216103533395576167469818527301289571679868271717719541304117543530838421257531867698017972263502860223040428603878676788382322917437989823003966864559876418316569319882903697667925859659359328816596276266812630525740238235674300573694252430179006071717283030961106698187740442442307919119217975095161656052557428646851360808099225949618478405689723836447567539095274878000082004375226307882718962674279522726133563738417719935707215158362999151878087620715964082585932002499012131013647090412564811661220390508544378055684990656005107870523265772904344757774185979785222068256196596193739012357501396753093244818391580511361151325426303834543912026564270569194774595445012317282535622997294165117979376642656957356758219700789848268668985835068350893970329057951561210168709682780026083424605032590102945595881696500374747027141227721012459374268239725348193499866492594982914357071309093725429507502795678966557412064948989172997026501280002475658184803431957450546441103263859324466878284045926927688146835947747137205462020309199048873099865221938933154025465364681990412255629502218749804103336984110002956822735324162333943220512569765761097373540710377265527018647642323940958358490072748355095337091792627645565288705879355577019090119274733918932650423254980454359891558345371266495372613773032943930241293468510238431777249772044961504945313872165870122336177681746851775738385753574784856993838411685623391126023984491982838479374018002385497706193978127034402046412946210767549014496386753302485922260843244383322032593439823725026226343202259531574680481192833199380756459768607742183425144307219680494131322315609899806019283567064767402690850167268268969868457321351399167499223260885182141376614894333863994835272083633710404368875023321574481246204494234168770927009978666106962409119130933637165764223650224948961719352001947356993694129552584241562784857996408960169448837647507523401593546276734703751016884828865243233189046231724848824698581632881167430769838981324196233232855553960088014762642869796755194346319266474819658321243349270433454133618138737761204905084029969824810996814401894560821155905019673120088433870528446634808124528289725337636868253623325609551309493080524869665855084474040711246513862109794398383238138790011844735122598497687412903586870005116318244938726395925812641032174126787100595375273133649534750265076122234863108153438986073786972608741599661744576996158805096036698660506368347715322117163441936084274422422921347499713381674288411796894794487543054655528908399770010971745911997729911866529822529847811487953397357354195731576992917119267173434173470647540107128755435693432535626517345215435959361677009311351852341491628332837714810759382585325616432044128840045311328366577120011161888281793163110067650597073719168563150485467359979926263918947345553277760666428919041132614921702738509021517778247493138347063182306701697637835097926050517702557336064743707650270308364001790813366868709448884902827365286313332824211872487555704648833437347453548146617903296600156321793260149464300627807117211728025850141464897901817980856025525368224747555405323351250405138397292295089031610604217826396875844890640162502970047495050704690025909713393357557575567745693391717031166753262570259094095383032128359998935920062917368792117924477369188358063315609233122924184307707797187726715175748618251271047644514560646503730857023574048902215675486105163534200663796155080522710687079462544566368885819748070728833964166745527892951918094457184225530266094689402098157119883704948998394777630435690942184230655926202653976541870212688710779313973041529840609507589684333739571202670536417641718996107021016309595884795260952041732824814346217691497391807481634615696461571101333338535568341068821620466886941808301790361725079768773321309157615674646559906968998667895280181080785187470868876029169371200267775247498090749238248931446748270606577975693423970468995383935612540843731917915837873635599225617691980924353563038609570370058623220196075824233691265470165974326706234438937536292089108754843683678743435348274520425980680834111218893224271251090156459721407610725393574851646139891843543609083165972039743130322176325247769361215385707549240058731590307211834787692801936619063001408159078840578942304387294444815438713950424013502919113022463407907243862247553596050590172726011920554472977634393449270703071687776809937098188621528606941928053446390548466908693462097332478408740799371070430305614374659540604320348528799129504788865637703135466003134237279047399735610200360129588361109606585491269712164328134238990918847735787424006481026507341805495454564359433808277637158328772510014987120190779309461104665902180119855940671432893123204136239313669722319230148241743439696271261827222086917020228213721172954156445773532995744116603679660219077173376612619633330487949619158700734825037955317494177950458186265070848417044409607193876986872305160609031691290659169038276422633687991590836844715778299224405566122945757480353151227353513812989963816218407011970879592713352509856864186679149259384339742746315312376052466557200317203992048456607584229289094485022631451700019612789444922392174630029180061541457109788026403396379136981866471922939117662237972086496709926111767249953967492900413156925143282509616293308394052962507578598112831609775260347519593341863904474295257415986725202557426007363279627589253591554106772617492612207036535251124373323749273317737493873947477359706893976360257964291753321505120362264539973748065303645452366321968149888720759508780612166866066819644086867231613979980195660043652527968593344372708535954761441815839417580526295814128030877249751529512155788623198837627896510210030501612119933101309729907226677241457390507283165607956024502840756061243003990561047663021624665824275988069543271894399206985250193352207675226066952811162415729237264549254151549518030045624539886284114658805580139864956740499178956952764123031453751660163878239811247442837227573376747868776460942162213921032388708814833425931580313819188371128948608842567945672859464948841831911898367689042898234120051498190006788017444004068488570760429713499239699690238491835403643752518430776040931798633953584943814571388011128804894362573747289549971319813724098625177694113286764480989714739179653914901818089259720792716156278756826806927759282959072409377681577424465598342347898306467759931049040187707500004470096554634770678818103350339347625951522187249161214540894767041107263835016837505978425578435881286437590954477286050549669716601682530468463468675381722027937889688224738954676096739622397327211463009602994262360360477680126091492847114947457290933909885251195234363958163638842814663746373000095388285724793643584764426165471864050233202840771225577771456689294480311389128508797496674831388164001797166363361018081888468060192770310031348574904504380737312383045271770579193851603745894506836652834442231908710184710408308192316362941509457084572428383000964623614993315510244795255252183614779654027716543140055841249459423852408149231580704325389436287287236930034840410259082420636462552924645738832791675669464383954593042039222381513124225105829083901149170224349821124143270337569141469136904059965960080551398885471562063064211982434911173415240727277567833859580762456235314608579284713537596743293753415972492455320657135520822570687298130047519453267960145688231828910837140179559556265502144818949948177279197339592670482902201477041138173365874945315812621050151089396030317429999457454130415645085333810314831054415244375340692587775579695901845055491801010373470721682173799153939982035955957071090658159187379604862785990102996360659675702949221145146820941571035207322979207074507856143301700394355428236646436428219524637090199001004173243566148240826020987353950493462373557877111326631076061885275747499623619383619511531281464592747866615099688399490864092196447246023320586434982980799926205239252784207963350840773841368893502956659078365408044163873451593416290664302376491378609253059184683094569274450305774760591961193191494434898410300242381861340567185544881923967361318534982293452510206945897610977966602409780249254316591050752002028995668737808724008274390669211703655678420018540174243389014849632702991671073549647299469592607766438456570005150072209849323859727008966466640856500553763460015923089646304402942362452537372656526188077191287913512521657401190226506368594263608546127513161732065612881182731006957634531491550359076472455182815669610510113873950738218525182466827630664266838729172930642334304244090357965452557297770333263475081018127358328090347041210178543274146063353655295238439734909704963163571938845274954706115175501628231937318781271704652520985141955107450124756207714929030076856626552353992251347241102927134351626242662812039420209062908796849938096057304002006996897123480053372003475993462794685345252285093185705377405618077939092982768452826992040999770042580360374112847098451737942992221614198517641444138302636201869041762273316098286958906005879516257035460191892548926060463793560196056329352202936416825501201690806622143215084675618887507511090185890070677901786204750096691407427096333734983126731115302208316950000635553626079601422674557223224760995909654594328944022328038395120273347540736230730926919608235280230565916848581539305392668563879768966084745495242626207529382996937445502344938432477046075505457991387067390425886227178379916415036147047801683630806084092074685534940290205161447946453773538629164626648687687911759366532048364993028600663861687673991713982752665862885470059516347708126871954967968322469668701978189921129506487220010453265816126732551070432485928043507065058294501481554013579550122448448013470281619886998034218528020707673431778408255737049124466584055952911816584817408461326473847293589513551292510817939690963380775308492596352548144746387833991273738532993193337568360224199867879491837877720684844659442958645851234256096696126708176870653064227638107956482957927600634349000784579588875392831813094052902847771024253267803466100540684783195701293954951257582132907279713001697338454535519169938688981864535517069704548218264421046980327768126189965903622560195101154734557480538865744331097807799780404662806073177271832676726708915643230875651269774232863656178282784028115939310788260036003968348135369079605522317996336509551998692559313572124484087814347183555953367483303941607836679369172341041532844576510012330697760026974510026503649336207330153697695113455968948719578195720032472386072901205342061609684473879753856958492731765948128600712116028583932769215040876419658062545238734946681524581950311209002102406698719453237879252365634299614313015350641633200020599055736141671776666924671197815651770571199995859664182084006444904205181953059436545739948963449569717891677207110889633393455978987044932614853044578546586423267545169768456534980261100643397000957597479023695130893913178330163855685836045081453406407082986100934297313211303662046165516461940334312012207494894678127431387830484720702754393773682791817949165760662133740272767888047519386552499311091697058115475947530179807190149718314148461949360274845683987343332415026318426917255156251379594894493374675686699258153204604631022993180490934698437810673310200206273581658194448561330950536591199168266883918296288448152240710266803929705225276637719825780779898862608198826430119165918725094904628536559463104759770567129838910861444941607410393169203394157439273092742264530946509882217272185349337521201011099495582941459796962969387338746653384633179401137117756815189165460044325555848188537104413660085992855194992737249606666402735893410977706392426426983650213858300615750890889908850297684405878685269725334205158281612644422908544362269869164612910054637287947237204328784839660389620237001960003239144953144992818023151952085810033842697431801871193293220660353543182351447062411754751401487210853901487938175648827150514237799188191687856302293135921010831243635568686408535026380793901396182674402256583548368133871780919558496734887984310502234428459799734091484144158700362081842528370586172355328742072984543215302610979361382484592588341502914153310891084682615436800446514749200218443492697979080870685926520652088624456312773351168023156954022596386233712291991515106546042775547659328850862351078697841104338351200797404429253388278754540479899914772974228209207515098683012525654720353047573851790457899821926328926318202897489173540064407025784163683203793608443638209540214497383640966253785324144611492172780622288397810679381335972076708376104891106686835499273642843164209383612804899960936617544745618610445875610523933273002379483942567137742631223201260693933151760392391794519946684176620875020224275156545327981879311832866780471204732807616696229312179930379562938136811871250420715521149430257576537212297894069653924265997435154664161498529758631011749031015272131198017616080229911623199752312741702004629595195139625322967236672867174461500140845106550344413476604135162373657655338479612935039762444734184187128004423506018778701834672299993961863987505836994579104762841424856427759063187555464737285421109222038539731850278383679040110991593764025460332699122389271850601153975809041723752185027344516254254534081746102511291215664116227766367718389038560322302065947920775029019357272506639526507797427897790483007791208754732265654424404474676197515205317579170704534298031130359517790347566573981904443707695177316861488737884735674957888292328077640303306699316396544299770874631136097256305968170197001108517471076148159850555105941538913865844143180415838783249673923803612448832633019345939569804004668754832912605288345798811873113858546422400851006974872053375620000922889983802144281800856054113498658984347027949556502765356385857249489404303116169391106421628153062753291509836576127842204917617069638434150237511184584381545539171245630911424275343063406510180291437996973583922026203126067646183998117473425941537041485394536062503942087268794807038619114314657196176266455532456802733907600925654894814408646024262882822389672338080592526876108566352961576798961352397599665085793180305783752180120440073849815617058751312689447942861872095369610077686999346151548510380984304714394195724811339165915897635008617860043314960703620736484777138790750728922794363823451032341001726886333056194559062869782132807440568177306183061816725382825581512456787772010970028241496473028737730745927184356508431420749803087393225616524376682948223341181402413489394599019304273247185876061227834510410228007459473946912455065546116416449855712173823658800442117860506535331365101631949915144420778765683395058089285048545030032757909137458464967507408541135229647899589547343155935280972216675585446805187830659109179855087874661942527871758779599980163945977766973721755044820055424062132491908011630524905528223588582768352231789091614613787204586665128278653576123064691942684807665084801698025536162080424954323834544338977672831918218209239460572023072136439086696740970616037705073584731574592570424667593320376197529717108756027939637549079062006530560442793450543495441571631815398372161922030969186988796416245890763531857785118024762389842844335423943167820907435154515200432849792486375917743632664496026865071094745135574546852626052644227331358719800790517913128239664786854168028053922767910629112334877513882660621252979356195912415015238440030536206152471603049138705774377109509920642452665961192711045738284432346691451695841595872886278335711724618542446660417757242909669208756977842217901005429407632263719251377649083640664306411564290400644700117049433631390825112158428324867812688357329867835664384135545553538270494429555843464188100011714919847707841343852839747548250022862921724169419539273331177888551803914315014692071700472181214567797776752896559731887207387614948949860797034730495627580394699317249354236930019240000548722275807141142978235072557330936212863133396795303472624122617509030701016298322154139557518571380138055970474200956171679207538637058961511637678796301209769586106342456758698275099684980155394912309210916584844054563342101545928387692455870513928401341399628701718409345099891140517323671491186097450104485870412130948804436471093657625907002338364817949737243426344552316625055165590593074579080906110931989123436619756995586240458056164345283571921277697955333003382846884079910891986710770144405666142150336937045969791554887220162080330483035653030911815558599989962083745919825570558220953529038358128826480595420061980167583505970967936271662729809112044084708845674524274064249296435475896889446541308942852383157146727575047113485269401030125961224887886816160638198847589313096324177792699271683043647138775607804930118273460458287425797961533510604710601291514317033945926823564175674526640212598581088756673577164021983031472129113607283605285724266267296300396525802086607008230417622333513839188344498328898468147138109393190540074351451932998183543073390390675789601985994006136965291410172064497603071793503538204365331716181739556540808787595658644835391506173835014414720804709582866878022152667413137388235741162918251058577511961349014540652922445265131692654399011164227428025299378582658462036239655864090274627360730794619076546021343232503253600168055789633120609877275068815707886083526441755022182771876056332238370485845125147867081009965836672169916128851493248866303954048199327415646056019694914405817977255304140046955540314086319616541721678205667085493796425218218692870514214783224298899585821381678907522124887148702163281390771344692739935833644913065197927696873317560067423617833715113745050004874521187098609922763963415202031533573874359753076808013035052783259457411602498727698877753556963851349910850457424954974509540027326919702293227232464531780514858961672368506426094136349451278984105309344760075421564635709947181283992638244228586257880401746194172688119589733539874574294638376404912243286876045333620789376996531583786455001016216928558360862268741953419901609004398961187557745753406875755064926842540021142616314199538535330910126355497338148173364985558880263255786325363147500238638856813991197716559040327966004362523996478474921113278361752976689950749508338434985276295040110486888576258423557014669082842902365244642476624527643109027118593038566974220586936189210141670665190928445445975526268712615041170804049501725196771662083326460419889844018583125618341949184143007642102077826731070470327348738526780885941283555852168712053040891720887713415080813814513797996236468028802220552832346959139210196005026491450168935552198967820656499940796086857044501964193344150232330626277810994185149745025240930252366104326817376696843127124657979158899849043104606614908094440954922241822331245810145726830858969383278855731849305383231744990117763796272358039455291891143349039592642687156260563247687542964129000531014692249207488857246943626763425273434733133802843955878758679998577565310683317610133759561667791234048230868140950728180393627685233980802520461657724260251427041120309797351277378421216642742004477651947873886219215697038233481625219811408054600715975781480482217861837540097121078986232602391549989535105446693505290979263846063691970879216418086936188244143076799657009599178574158094260804409949416479107636026604783559935830743391995264613340966717175111843327465007235972120833700144376332632399754445394302222163508665289362911061076231203984916225461732875414578636747883611421284342146025061668963129634258251542378368470172751967901431713189447818707538813893896770341307854459256723785380954709359883139014970247184949290348455625560710128734785800920520087145590785496464759299369767039497594765558884418998807806289224070578659840431979364819328301381912579966942512653175099454844194490289773874666539785990054351020731816466128960798905110333372326565210891069226061437390142542045496322017651165850468768287029196585538799421035810574995673455463205941315180243371729146094654556992479561653281714925499567501522557203329326310850060330402466542184282894775008559523778799078388950159131561760587119217959726835917679168248211132340846199019537594289680306489147148171342094371114612594637043025903065040485813837483319596475857701771327103653753601609935742835323906397420881464706371859274725797290694326282016808212204089137581906209826427640263384431295101640864619005098412701563292179368899186069933241680338758721965105392664905337070272138270521392876705602990476406996556198206407485334519288561070466615916982504027069157926518998562067383982347779844159976390532991598746785348135621337731819485290670395372777127013447109498698871699648967110137411053346564639441470406439482862572547629565416654604757346351434287733142692614617836560257940020676203531011448886872574152832411294869816345433003641837157974584759008315642011989021934800025523211103399757997263724178476915436171618656506553509003772912671704861179347401459234383174233840792958008924929439762612706897278324736371354499932472767319885156779715282228297915860017297581126774584677230064939349804761500927852374257701273988753232733842492731866437612910715727432648052746990193211869506991628585813596966978567096558105666837839449807645796012603292041887570849584599400757545058959652279686405448170793660293902868004270167433609716747252921078811653072541685209004393357186515768005233727304493826657743964477395850204163651980312039090517411791804557317451956573297955718839644763881462688167554862735533608440026884550713662561341806965677748447224684034081034472009285455804998559337421803451587046032877508054390951819288535419888169623487791361110248760029234150007857889158265194674809680965283394518062187940922587079864612597001552298505048224901591447203752168862924071523810778834230814401629199824466371430179384062488071737977898203522000851403524019869671697174470701144163861174522614256539768758438128121421574206135469201883375946605347254644414285644987818630603022015678383399680829491931577091265742889972436396440122918673349202288448523043972350928107772019064505454341122554713773978756876876689242888734460572034504186899583366079726225455091204183274162110945584972845260358274111284941308809114615404413586217840024205418578813604942156414634207950912464578398062083267425171348390913042134993056815514688343547291563155064357528896319463675984300598414651283292853224122562109620459656852574820055271732689841053627655743436873526165921612416406195237178737097893964720546413453171166036230430323530419736246926999819667056688587334255316571311740125328517540520322091896826837980358172029654053913878756704075085985091792569111703709327079639422553990665022094419744677631721046728572366048121481693317053727092859973814950751527242386824655047069317048366220749749591817551619303324182513840132671913702230388911014406273425945545389782573369523883749649874091613986733490437799125600026174582597030309770832297724891147275340231550427581511370032129491921142040045811711665861487644078529633453544457061441441695491193172197910276014732541742115088488532380198833930792662353364366371134547423604235891351754035483111513787704038183672081495829539733864478498372715320228022155163142215774360253036456531935149235019004604474429645913356131113061793236823440043223963183801685403195734338467650516467834198349482155078372457431508800366164458867135333123204147083262443217179659287739897531337521432769576908210406261128012491206956090307358448345286611465032820868837902517404531456526671280726823908566950625605447561355999013215812334686509866461578365530338730948859560749108427224329749624097356628291998656114026024830446844689957913391314986599097405374059491334943591792522834440880110346959220775943174105287455205516067489113727190654686300120833803026138358567527703923422450180860989380973489267371768629019823648893331180076422001078845153775026587399539203332508782178468250997847992279950711947941249712969135480910998518287368975048876776762662420168227558439106482310472207267269538436365648257569887477460408779111087400055056401170899890054928446329886275122902498025203755291811692936980550763452430299918931346675414926681564411907438672547889655382920803438201756967045311138440324508333240625817737685303336295149737727274438877238356571452029504305833592430727154810385481504393247298401241391539523088755578289942515698921390052334290146772192867925241551245234012394296108893452942481632171565162085078264570848618898354807400411666534138450864749548740613193751642449271396730340667907769310730586167704449716290217236403666370276789136386440339662053384734081322449440564747698936148469451850678070674631665322486493721313215144358738459750950774478057036255418674562142667298590149690149025451832494343185812161800073794180963631659245783137785727344116418414590580948769058576697549055074400672751944236972553154387569922700177589731955429935219501437016165125241811425758985602657829955472697970243978734001211509349643024947145568726643616760736221090088365523804758531749441109970777772490890046992230332979751094860727972312248555234706774950517937522724603686448688936026042220825936083602347705198871115639903914039242054965792066776799200500867973755491958159174775266663555518560493848735816054919689353376634297013259944240227462755785306722715865753639415615930715296688775942200767498888324367991799775361588546193844998443179833707869932743692293020124485893255553260360843180405285302389835125011474239730617759350801348462902177771796926837020275515674578940268436539376330143378347514290157412191978390336901264019873818106008213018979245153998402680318939200781125087961865647067840569589601381036707069327396557546947381792248559181794645970898108277274109147973627303441182996933252665835462234019632115049969809181470484189672418258920928074335734576484288577685092887666931291193691953348828774903259538333119764434319488006409017084446486725174115020753319061994595324270708246469565609986218684353133832542187306166325660542410096040332431354101432741164328286632346902086462098780393887608712617725838056505714336428929809992047007007924909063486501250668746819652292534911050522671295373068403169061326768315588840285330198777015931000274345606764496096950110523940127557451361305565056789188218912493345471720924249955598568046224326432790200737768215531293436102189545917142901232149955108331231745438615061769223502377190018021656101275184846558856236896480955288508558650655053593827000015233340612734492753063221934338032200274849935021912696743733930870606858693912117421314667761951498335690790011639710292393997997257038142679712470135948108302319346418300786304210476356807469260791523690144348532959119812662739996600426136023616092021131625812880408125142113596750536460192605491926952982928320333128712545810066474381150386905431158517166540482008725286776124130896045073086836523452428634548718928036461428824644812439303093004327513461593123044667513497014189980383582506859929771201998565359292938901321660434566374895251033047626741182289202471663824194503687495903696452555168158952657425465249943095492007036460179968689859896990655669349731403681011429826958052484740954879941724131056073074253532052919388476101465279216345274758190528991470169759238709909456751865854178882964201882630573582994279921128301934609117819790570613993361002102507187233698350422711131015163145682797244396976541605459718687156313185679974690164987683488785098548602267655898677834310317541286781022195291910888242020060877620224981471869979754424455797708839605685779200305518323797379484554963141822214113162514681858542677284427243895354127193801119083658421072485294980610160302435624286550384520992072977391738160545989421842834471472798521979027742340517802482608060127897509840298436431719749307195884097924193759249822475847101683299523854644447273102395699497350880694325224901396078182474434726521874711332538152030510529965978515706472417413262799586366802392261076811028889262064914039449807922116944797819376727956545499609732541056656405744692535416517177362727178928927227002179856716470926470013726388659122250918395521010932096283876487931499144956656965005873904175689508022937297223654456233279618367382999073948402006895071720537902972934768185716251876366560764366237985938079501343096480033289446835961024115775846359014629127842817081306208370632851286764781212456274024072459016226874061842331642607373763942306149390019479078607453380772714229137634356083327586500197015271805678183167074641853226581093173180017321013383952661203797385961569914767659619540595722902701489850480621935263829793283793797918377905162806565511574810570398849436024755578895220417665520442939115365508710137268915494465450739428625515196351329656111548235355374386927450406807602194545344578789251900125444593551278482851975668650622695167156117883772667833467149731562235852775436116478456708501151522266135204470516196018640482391290535467841462938411626998932963908044461674464407015379735491188592388269532968535725688396466695857732303980827955576784713204181017313488100435589617518992710230402450897350578249349261122123376410213072305789123749115605194821903780397761564940728344638339431402690902583221362637423777377802861345821921556945634842417561221424463106445215478389965431565110910306597916896399932655998003340279351322089492130765354271539634814356160208064942025560369350006114322633022013791883247262486824427295802763586345795523199913657615729677223572510203643145513631627589986637363442352621990911620775021440637900187127760011972471557531333082368536291159525280087099200555093469298353815332450643674706014567782549202482723229374344301109628490388373207930674134407523191101195435612187751302860958357116160551887020417751347601758115719611661589914027812272297509030665750517298076853283006901582277798083331545901019555974283621042344159693604808710551411090758212524387814775344567900026729807033836061290398375326351439433088148746599748393830936136133343037968457576857089504886582059280291493385901668083052865145145246983323939614367602836565847711605791028266349385626044055892141647857919097114756092659653197035879706726695051293210362298788231093692166572299585034130321922727307375019905103332213379843934344369738198423098532737428212960262595545385183937775738405072214423785337732236562708011915063187699458430772871308639578816266129097725454663837936016124120580665507349619565871732582694537582891679707295366757088156621219767643103699645317639752468129903598228878277133573750611599237289990028360957632987664910233516351865097043635811749376811097672116981827622715776028001791262380912097004640972726074474223498364398809213781286876798270267259710875076696234469928238553388944427713662683797524605789588057466340094396300319106690503226360489295735576955568819318055878685731668790749881103260110254600599045493657250366831546065085996705221512605222007827477522672868785945174182073991192581413967825243335953516870777243669748083150831255908675589596573349802797798154231850398436093844635326600741063650135941839483786171581697447642969543862057989924526299446621632854027274502115654405646019962543691594159642632446474747310156710961362098876205439055438607595578917953625142227058983563511459083646740740879097704875422629760604169608408564053771310287725884939232764105365440010303742406565713400891278266657613130543981557286739146136529436144094737463884258004760018185543177109192675334424595323465013732122577599380946500664363440003459376594239268341450944780154117953941648366359557786265492708978750112379499268885113022510523744791633832639403657805573931995624834693219637040532212791130778974236685979002160511568717991610997315039612891363666527646867668023815156248711201112751367706057155879243949455430438640429347383408900284626768115285834459640323092185313788379933190443034583766638855286198463673881812840912575223550530407342780041412162811174499423094658809039565172333054732302968267682214551201552834294375406316864370153750411421670561245449805131031506796194975135427259829090335927089555751268996762228896136734263286637559192558335987034203824886329856509051920370335725169077972720579718380314671781301601281197863300886661341967989762591075226275670855145854444371168481296665343368739183363573488292202609241831141994282592776064783474088458510696688003312120350731855816650446578752393209291383514506589796053711475695893646063966719983560920296171879338429109046549271719687048785262105975641991200808652035034505219013262181289072757255604335629856584907146208719992121566754572364457736205369503831423099396229234086335062808901495980449882688836996399508479185653230181249996856068023599004697803288473239322860110273194795334981564415676819373540873538064748646115971319576142919782070246426074627961413252551708537388292821449006781950770875217183936259448934662496120909838267348933568960093964355490006029509004928311495619427010484600135800412577349691943273595496181535198580327002821120528516692225931958214625818051701800852636734010399475621063076683665819938548838990562555896385749220119506829992511700938897386477744852411777077833571413830738427125433536902253664826345863764405883942556610675417514961426847727769462656100533318456114278911569786321170292472658463074847610089868602155530132128545141449898812128053752222168495935150569230527398783298169097830860618895985670669332507237749308168470661500044963028297161334203667676418332610422243337402370730531879079728530696430457854707634594150275457902358543477562231020374178696025528197616112527736692091307470740008541493137094436067504684096174323919091709728911003331101920192477850591249267223602339593129589691617527151267510969951428542597669229550640003461964723219594685495860264567287186737223832565683909742106275616613923400224113423722826333703122722157125129817073547436286370852483026280189819987719654707574855608384215951030852440593712063649123003156333852868604203150602681777945665090083690273035337972285079704689126036950069992536168278290867934431935571382091716014501119314828662509944231078457496221440997639356794402958182881868073780566117600965040518658163309847080647003683791890529849865678636770959052691416452164762832471231445031885546888410452448118080007784633074046827397546282340887591357850016410834122277563574580208465804689138178554891361574788839842178018033025342188469133530314603407671299207850243732971016066455206512114066430448541071036525855787629500564278751515766504860658344962366249753643109422164668399896940284280505044740620913758491122713480998208874253617003451178841784306462312131416382332980810454761414798230444588193129961820557500248620528264688801050011983901104572641886716250691235009319189201514556666684420204859985961828838095373293006861634916686039598262199925390098977919360346957128169737735262168814608983827553434758586714205695767091338574162671742040317438184169130908659396370142618874418665501430243408705742447931693877880826282626772571842251615835664473157378714071652869340041104134164820200503884537437933544538888884464896905167510951353089916990487675068736507852884027950623398735409507545582611047233989820894869768823477721387456502588025403979812568725632460003987693790946889414757364371505746205828372387355132405276691364275598271102450458259943189793539495166869109013512928205553032158471809860484505603236705824253954705614496552203668242709303727948388967575544056508779240741904775121212377206550894266364524452005704508870564206392949021961196524880401698571279740593318642598310026407647165488866186547435479901311123513349315522507834009963305348568774599327914879389280606984752015302675111394711200854682767176104039987758933116347632623621513436965507832676995057374057222228313515072636001153081855815828173594873622740129072689356934534144312412918855589002271434784794411017528460628072067408596735899544204532635192946534388328554098023845694573852808149380236413916631903904426495926665176407205718343390118264428017321240097636423222298485355473940950084322552512023651464065925909624343226429026192476097681640506091835420966524081214091359260195395073388440107500745304747448924200382259278462343394757460832985049287616917180531365521028311181526569651228066745706128706470167075145790929907684520845223150847169257308569993475654909071679401781441041559220837814860599457958521494857986636734562608407316169502511640818206326333768025159461462528944304171855835571934309391247930306664015001047137637466152594901132488634393384317050224955480844096950646351001828307119548003310620598768381698198902545881076919402591056630495148444712017578269142727971691939889298366212537379597812447981181043122240161895980901326268150376201827561109364649732723094126384382560590127381244599438104348824087123536388099581727828577646634899273034121910530513563003512758001906224108560058771361014425846263362888300230213214357215260423789049540378120044591953250770730113325707197213191692110080218297725223991626713125551926721842106115258039034155831932413311670560209868235186450485361619680126995163949671748329358123995933571136278963938095843630637590431239766589759743283336237599808529058663292094122146348875019788005013784729467735158576042625706367105602121433883382660263573334208706052283544823378638874093040555122054184284506546334699824777374732558093205562395574145174421127275472278876349068974946729743684492094196956850706033905843133659268692633692108008317457495659918265975631882366368202055194362830864100276089516166174779550511467380854608606646741729501334256337330479933429117958449590072823130423174831020546983806285947391998007018648348149307790526040328972754443702310388734013244013247746383273053466766691691984999904594130115064147361982491471215117422388357705561078618472819429813399081870570481645365085403713485669300488997116417852927716505105091122944821001788842680561130920702183342106996576524811292290711291062583210355545831373515579027677922650928284951478425328441621091243307737020538411753892309375464702326507637307586542707580143125299727431156172022192097559225717403127006848031367619557313930317199549231102729738115574021297822057892437902398132595059447204562138207046995295815588606340756435219678234459435710060222746247430486218003529413834014903228339520286328858145375794140349769656261515112843482605291260451458860883075632241337312717991607729357412526256807125467401048515147462062729459398111630259819885705704613847998269977243927638695697118406991289742892318200334001953299273925017929448132217887515576397171028995276167817160015107814796582057742409929768191847167940289252624015593026178279796326621089102128027825501465208369925422209776633248233430069780051047268031453610158976404968668050491953450479915506047994231807971784281470424082235433575666666369917794852034771251643733130554223426238288805452425100850479278520116206643445819084642841274688833949827845865510711491764618014617877270200841042895002264170762466973719599226902833493197186434576538212060095034153067067272900719432322439715139143881891345321233829647838752524288281386756052937727150822533493080210512918102217277327457944691126345796209366944865417850690233193998609871114198236345424087573965369575569399699115573307553219877735694697061202759671718061702575861722282651826173764145508433817940630559499040738933904392564461391525268418876999438245667477297871535203060255711467460640834195779939782498794623755305704648589158233839072846889608888669840323953095943547942466933734370281431522891752723421955522791604624543861844571053868596453706262190671075507563282796214435181488478718484774810847998360301412137373185140137870813240242141142496994212861074967758981304207484140775865313521862768797978422972763511049254500743140431252317363299662130388155853041611043442341915430516896956613506402250469883283387525006888137993006762074755006830665783028601561324256724630281148348673666230823168246835378933985164361145042776990054075238912313930575135903012104398182004184972838020555534729933174187164183573102420712113015514585898745452150221157212151990399345942388531983882440587287058449630155183284558722780139745075360524067355441869252840420560558184763512012131004968050660070471488364110750456710549011017721633894527708089980974853489498785405060219744693164334343515043175809358642803293960601827935489727710355029767001392649587808184881014984850565896893815107092286142269713190956589337126752860974589878361241329748727542960573701617982470658541532883861680407470458599066464807100454306353096998875324155510345259900587439654019047029030671818011836696912155607332500338826993808710106346734756855219137260013017681562218343630587733522836480685533532578481079613348397785504113425737747711958413340672862046779338186884551259655155681411778442203332128036729990964354738491977509155607202175019202998319907138754117448876163526257307030418660287677410028692430131432694836753389543599695782441312933366058901818611321876387366661431771922023429526969758318679613519940719686942673842112959950408432292771081429641249108767736326781454502919269759359055012853836438459875170363828774852277562979232609788061019880181707506478043658142662501465169160457041855370157047509672841222943961940849188838171988244211573242116908295530282505435725189619018128566538660886554517446375336534153008542012542499393055817331609104154596260697782878239732064389005300051901300326573340521584106754447649869932846717308008295558491915815877146528056316533551431862993552317407595226869502631677906310734707081648131637222066205222337303521982529253448275303916994011367128862446958064038813600637286700585338287535374138024560236523963263788575596386919119598108032481294785622040830961217440454381061625856390699647481804695244591235301282455628791266012619683404700010678723010663637980071837507516549986383973560612464121769233855199383275813417908728850373569927990333970109313619812298928703135836689394264333526332366798129481718464855696349394019755088476126746514563187744055791439599475587845838818620294353607668640198013157262967347792882942088885979855788423033084877389531477316619281580698001914402553660282257345204161624416504881506388817177112467464534950989065142240314552551652026132538238822490253787194899048683900439063699437251031584267800510000843603500064437149411522839507468212394613651391198222732658590730032778048596780882472514247286622756495225967430083869863717252143027711944301225759587619643632979738591251620088058961800658167583376737917959530714497280722582422350888295449571596473965799582121889279300447069856759667119037331338299038315840222993245077697981990306806069413901001784941943707417702082100562825895453511249563538105466301898126786489315545184189212271845026032789012841643415722067747730593141772218990935894201490906662676337966958325423097292582765031785725037621989810066426862671817981514495552442506047494704041013541363875769462396513914888820114299739715416243085199237135812888745734621997379658808212513884627740475734869239346266079604454901850739171021105649636731337800466330055223944519804970166800070246645264786367218312521617064832735637141004327049972301991579251373297000705948798137580120685673127513998449296415477737513681851831929440598585970463637679765550850365551690895206522777882504652590686761832320033698788727811190123440576035807458157963548312120657907546804601576140759337428632783577778979645260128064081839684555932568953261288620872465290643942441444309447002523657163025501460156021078021466970204925846434683661159150468811209122713806543823052234830876019172456416378151174169681385728249478485033590415278552253576688041875621971821094996271154795309836465169120597007745008554529572238439658376804194262830519733085550813759422743189365842810625779052249047232617169319545667852124575826103342904914253895712497160141965753069072320461590166256411133180427303605101899124962694191651342367550782975986809324000679617970581405988545762786634392616057728603229788336604423381081150733312390305002958500446902309783825075399024559204140888401967180780517165682963149289514406854484767541546824565620009583483874550071311776017464090411981726830412358016220698583901166944732174440695070817869782747780915934767711088116352378520143121597253380213305849136961977057625679006686931331468242777835599557091742983767699346738294135269323006223796251299390672164533413671179040600286721496840341215300584652650477319388463419851940359033689268267812449054901344124674188123574275058043381040788509335386576654143752218935894839743721850878854888079102522718048710792603571080437023954335909998015857804222434168455524144012691532371793809327685144975993752414006115304564938867892472986238042843904130523264660252201142822780117938333491423408058809451540373242598624073394834197825129173830597403736195443801430995530548203671398201547986918108464133966969883857944418786892445825197488214378854089554978539969065267795973526351257658550933377045340429347903978163446477850897398814638354964287375055852806371430327769568458931142492648555133883475880689488761799913966070517452010777616402112126827562507740307184642952979447093502529566698441263401622759773362840744300166707469216368537870784893847788681225563827822487482734308677894800738309356112173920184892235080370277001190779121612403799031890795887743871250822643702314611092471983476904572520547412911372634602436391386014229413871476712585250550688234276533305898544643601804097510333789482463261295978191474876164914606292671441306424559116316275934943089458685941975126598160094987190247807202137960268407254244447540912198558257288897095731932923013884191670883030559735006939238242913643107238532536344619759360658319071858216121775737919341453325860215565796505422227704439528941656205664171241088085060968971866784092470199561505537052630022757440853401936941409950792616873110190298729459938836627216032758178364651162997014810800981776256677695592510726333613267018047265816415695788148456780279989019074241949210751637968606738857332807170703356787785708784415090302003510833650867426869501361571947890171350805861896519432670080742969472427978074389384535848483573052858296918941093552983018125497232314520091787701321567068921988300186262896592050770073764501952041803913116417323622724406216927459063356448939176256597638302384459056378415448134045569653015942723820984875512815354227351477157274995765621281175034494466242546507790442857795043463191257027538763232575681309171493160848815359419652697206972345140883527654211174542443800095627835198089314846001908262918850195379907588647079844543291941655965911824618469806807034342262946082315529311111372580232681124376147233806397771414233786787684788680159299404248299873128310385011626962256376036754812276091477599433668982831869001794020665277301054393420842145994093040449671316393324198828944640487838544312395616844268625681311615070088724049576393856941977803379153315982031649031777898013500923483564681280896760389858508638750048638650368079956935623927955995958955615379923675058806640936279156506987060388309447410177798905294162305999709870589891306069171767580697816259186202747577371452815069358323886061161113612395575002084421667445327777575487287537383161932312932403338627140325999584763402862760993688215495879957500892118586160639457973801457138468702004393994751069441469411502424970384828254188034989656894987165982467935818646621970525924729561471402800262986560873136651289566453359182743052142760309787123094133541739280737175505132983004633283820189474911443471051694621897646216969416440885196820815062144061821591576784835191938354381834257814919429563895090810069200387471960970254399818317316526048439483078860020724600846545210864500839731450918444176946286321040917893424650671800358460621742871292734023339639709689849813080508594570829483461594206879020036043512938899680110564169809849309487213070110264132266458225829044546864839032107449898454716531447448283849100672245756124754996846139823948398377033497997229367848810142894680182619190286720278370984606259560654372969718533380269611983735979872220239945998871987057787149630391940567991554826411879481940442127714893006325890127546481372460380137780652583005604691878508971529032367128766555806443447158997997494912003664382391951647588565133675943512621233953312856930747103894975538852889899558551530898198896053265453076104140287843608374323541582745398344925258904266450680732549110022645213476134016502112300826361645256254286169359914856674438330198523873733172863209850454558710957208044951885726912893366856304082953446680695070644789102521088670103351279233190811571664916079887400764282149846298011430537763255269632184861372580368938803631696912690571109650121417829798667005202469134799948272787130760468692311834357539198918028630288309901650743234280110772140499412024219936913287965525262874996924403032540097135791154329665660690460216626612826782329111186036098935147139380457543871465628085247268803680802115719446103071301785118840102331865510298718387892257546075818868590218671120669491044407176869935991633135050204422687236889822702310914009311387460486019229213675194913563640184042115820492553463396924435371653284250093463656231490806514576071056360508035630355303083413889947773456795728408537387661257384440459028275580616845395338078891557439734360047081729931670887035477409271612271926370856390950842346817060584893196243947084063083933233714973047801624211268207321124460413311663312274583038697461280898578140974126039068026287601117962749901350851888947390203765893759428365724108044486419178199299093374153044594074843268723356468420793048518145222703663178287745576719682002748812959524780170716683585265200363835736379046136797101104893532034370274615912815791735278294422131611361712758580383722152783422157185419290162041591640969073550450625720519813930461965638610745725871058921938659177440290409168582788329567328622098080768544189886489056437375467890777431252376030789224407553157818722725703635012443610689022601229601721413632166742238215985480981338561170227563419746798121609187357907298604630161621431520931308275539151669525625119031047069595301941342408193612435294726763225252670963226178463386426450143534923309594973139725263716305164688695782772530884915589925961021095968164696545440602931942980954740470773819120803582411660593734831220635674699938168038321811018971291431555954798883070855891103289119418317144607049328944529512591435950659094605197518821613544625086808620639938948511677156369684807887208965822196930511863236016116428327093981098405317029626006421924711222657418875251325221262782566145445207652456315038213110083494376643790238460759174553810493014435550394787978700943386636687738766288891413132255127643553503506809824716144475983870628889257589195021602740535758425090713178663515054742088175194462527895733979139262639164706249326328035817814080407752308398781256691136547049406186095234338028024518256243894030276137685738801239030014160897462094182209238508603368728481551131776375151105023360481090166524792469793605549715431911341712821855128556962927332199600679330213459660271935751559715786294686237366755273865359119081467731337895291737837473812267554466570771607915973609307858726855060464817579168253298300699559373452279291200179319091545233430217855653939054550602066631212486659164033035459558192859062174865673517323527871777148795539154607099314383358682186722329822365964689068997346997030894250355847225293006000613817318229993380534566655348202251635517537795743748681780696555612684951962962837589503793393132847165379729283560119785413747153460413493330678030909373322162001310796278572864569077572316969076809503371676133752898360513776321030442220950294488024622444330319915605109009022488404802572329232943010519700350857924152967988166945369801075652345730161933453835087787633831660072993165068181038963871470256639445492139860347491611063141859775327149916898859954257159583128911201199036362308640323466491109863820996557740114763085032948329599212403611761676100360064242899512195144188594029542845017659368136281436803797480953262000626646161540697069942862065683137068732013186474228069205946033884629209577143966818579378129579584786372286934018130063101130552416771557057202272481955153658615155765144497849054525109280071477301249088201610922355394495637586595790720661596818126471550868911446386022672522746827229091658983076982725206878430209967552444546129380385094875228944675795452744519005979368783016148701229370071321029218894924042715373125310482486435693696607052275313776013814584556216476523392138383340176058179081190577046609313082791237099475933725744496713231788983467381642941497826004451099213759734918721080008236552612288002773054052772017302213928769306657701339797068606603038146918716235431253672448476428793887833576629502187011514250368431097976959275530341484842042491594158114234904473712867247976890713921295246347430593093606076790382549292542978438945417347641908384298433324877831100780400671586339245565613122471673188844660236486555559975357898626473357766332988606754771503216629866945523223351731243744468165055875053122123897891259754518260730427689847614438861756114276779484023557088439090610890286741366455471356246093984593954235387758967512513243786751881436385270086942415734565827255028917942614613907477677686297907435003745920476667306715086559339911605520160453673159350867552770222964215326545851624524262006204304406472953982942517867425497679669689099644747223836218731425304517182654542967000236321766396354480908698962118639183581227254178005173002439551357692147718030383319840558813595897181442898419233200628918838964622904222421669395252954156833079080551130359747930505298231799498512322249537090630575870112991280349605546808672736371814216410106506398475877309769055624616794502689968277310165329595115127725848256467807399889854844733155275707772522870766623957146034829120309689493773729341707790277302297188997283254580277757705980886686237555379266781336877714183120233731546269861779891465567184017799949792532915274830924010518684078763704033636381515191079113123534183139007330943604821647318766272493562768972533615218830854096790495499034344223769869629906651562423049778349203532816237523298457671736900899537541969283726442562191399183641655135704592794387474004768948538426983053009390708176791020189220639936757084139459016593461411591622436269198828382146852142043329940787290367539215373228071798510811886474190849863416922028801773714139973631503270724004355425686239941164597775655811526226215930537781287231461792896817941848736230665242383733452264537378692868787419873146389031228243526887080330742851888726554690613693360231642591986420025486968429427808662359289461295028759679345678988623546275631227948042544320700816158282696499127254523891993685769333873897217709164421416301139869578124797641573057521946700478092445550203328583893103615509788885475821035768282887341484712471439847819543527190424289801395684121193996409136538192149290061904952252304431254858102571497618649021492841186684377241635029704135788670245052875161888426754736018918693388218797002229678329165340541269562223940855452241408405951920726652565074291581982301130634640063091677062729172774925644398700721512799668543742012084425477210643193761508768586324750357348266794120202843119898373716473283517076049107992897650885641755985754280081965942603889206209512271597096393302915450680306470042124232385167686612942994753641796746526660699222446590871246170085253519093431654265370078464708586333358652490548793865025568161982093405090199566753929240373787795332210036731240790508855404100019121645100870492395629083284488275170535132931593418423565220263634133199465800466833823652301871165543476474334140562521493509431414642900987266654690709135784578629405774805561083142313821826827005726133172767574494639446723976541830306142930001292497779875351846602241141591082317275380513580879069544547568128102639475493233917016357359221431440724259029993584812751120192380313026272674037291055721433750198161528652935711338528219049192000389533214112172495171940851636437424160651783412730454337276393407497064491548344757260022962915726173828229023875491151673120575995928312373343567184514420688574717731582335987438409799414884521348979053374653570087099774058073959894695785866434808182387859477602892617335721927224058281022945556778390650400099888198008365422950635268144573968266525243924928977484973064178503359404310018650120059370357051230527750155628197819139012309394085385947545099866732326719760705112466443123011216520068452914938718062441497927959466523392749306497999961363822219776817739407205564629683359018765409281699941473842316531250839732885375105354337285555362955646022949040335471628386882188745000318832140065555582735804707587892351856719902966324616378934292829810012191191408648269975060311623666582773868073462655011629099347135008622725260709434069841114250435521882617196924928583854999464034622067701901265023405550243038916181664248119531887867517859393696570862225161330049601495811277572063959543177916394763503005759757258231163506001330594449713203583866176710763807681578811733381124429897117751580998932515777577268388806252564372518263901413346266190060676566922184408680651693800397349638351172028790960622588061341148172602275750872684513713819410531326827708476298453387163881672227999892544609934550345487185547338444578991341043469621889972804392378702275926071547061149314166049855576134500225060685206634156403670258912541376656061014516812513389239788240492582986540593874441597821636270045723948914141936288766228326850981619786024946408375711136110476597690080870110549445303437672003446032023015544610053317344819836902235283039442609783309495371524078848378122432317520967921970778400273823270756461828671210645740435120422709098815777716992465820662232135602344323025355402529476263565039944049952103195624380858747208361951674653135371454707325352136394918696128273205383307575634756549811305141325442054170018502948029390986824675114345612163426568067223974819181762878375176887034197322630127628475314885834026314385586107050331175949713469404958469881170608233079499343857501539977601874305214478977694241294157839634479466415363254234819639495590111610048528579255767395484263264705659188875066486353097043560576313502353446686161157155317433253541926004391169346292282056051021335626321985865850648427902701114242384097998875383861437437135175500947976227612767552596255043986157427402255510385955263310520848009906863523030176753936562427567334937616761216989862851727202540839258891692860638277310007872082122308471749553277354305019460058228854258094328813845336058304819242523275610896707456420554415275322151582895898953609043896579292831055849945715415885288413565505021098896623030445711647423371181733175966290427649957211246572277649348406656707128785697724628780959044171876708550214980185916885921326927321993535858127087603718797753062479664033931493983052242844616042844932715712188853146903067566647125342115920567838835786616768600838240579970126100959675582627015988440260760249787979028649512678429671838869802482338377418864810193284111064855689433264357698599390415665674463594068190898850610800055998860983331166168623397466631869948429550474220369440350760139055750489561996650843380297897916774136784937901566182151404618428439644731798173995876142730399745902373062849355613397375129795018296825150228040013697974977658957650301770265947294883031574362312497511421456662208532584231264650117095923748960842506965986979685940720341801516089972322717182690492399593577054120398587869970607990663921268363405122814576141448015117653968332239920924764233588393933730591852891763160771202946990890145574413400948469556083616225837577032539833415100384324527263891924299043965594896193667927329363149316220325050040993180925081139652695364847284135923959649703516585616993965800785121482281280768435990232976002018831207419504502130382179863446155176756239770636704444199079248643195741778644812633872914097266933346428989493495615884516964752203956588938741742564788862900255719132709094134873972523573271321885198703902517324536502967001151419975286826898442690631334950881624583813529443461572928994406748554327913980070598099707435764501070422546694360187930972722295596373497183638276567029190734538744379943906087401758053998206740369182753423271631992782587552535502724379672932728294042058034790593243063183426018598970554602604609465369383919138127973098965880068498273511084719660844330170100401982118422068476485115775916193949733824725960529893960732310287000189917763310826552845870876614658384496651907928472900856559280044179913145623029392197803621067014346142191980791751286390221661448100084730905924193375334217716234028847660075773615375178278080920633777688056085683948134686457286400139241405993837600461168944143697150548885035804576102440558801428960454565365184842054623405847886434817319725030155097084762702239328067890776058358996913439396073666275564022629109819767145440971123929725200821315143951135178734258962116415372380632400975487499455587256378862077512508803941278347774194173173816570478517706827108278334400288883484322246280278017166586453764564484463935149140306723529279858878940654938284003975468820590301030473351493075755139501917718364332058095293114148084177556809816700177859175796978843140266522206214527628242617194559677726532920800178086937234097108774354005061602490223584521553176315066410290697544331991102483977235447038483207359570523425433314810311919553121263363536653951398777177470617581607943300325160270159321520659045345966846619847561118705892405338187721519000325840160606144767521664108388743726671103062628004759944169177052452221384156708042896272746159841625099931941958164466000439777363915304836803435157543508594677602622486312269983979281837831080179518206042278111589645673578351578177579658458985075817295400498592542194190356769093732523718231787394444935890574154372748239796334337471718382828507392294655291748963977547857657616873462919814220157278910503201658081579708272654852643073299505700743714929362881193935274192579538711737196811099047345695684439616231777064265930850399101525237474773790310067803017003736517663737363284881905762174518597496657662254587559298187480073342551361399085705593078995757756162385814561809456155808537480802621615037546261267038137504692547482068033857020776126001860581632683544896102854529064731176370966363874104648279011868506386351778183217792108246377304217570220672327046027184844531463138507694692973560132593432418230201951296921207713576087067600706101670897766733884546782219323175231874967888911956647024361936714211365452930702863468800158549351715697544689346975400104429826785485009902171306629832467066927912133397039727991744280024188130152236455055478039065295065316324701011672129465070898538471223352174443767228755471379977414309196920709251380967610384485175804267621322337785536224382433966992615279829390670064584430374662234280113820257853851102750011472035047154184186529797178176496436727092364150536109576011280635964197308926426940601716710834259315427610727168034704876820597057251140355592067209162276968665420901445613247283867197795775759456535616047647524002857930450911324345562521515499410729971611593242516361135055243943411108273176605735127729239167181229242317199102666424972012173936674787933019554622632325575854718245138301440803549550808781160663949126499225020321261683344895854440422571941747323994102824543967973915914748995211919487074263833368419120771089367879565772828644730827211664011531520068540021406941014650626391628226208051922189714463638002588520647693737604321693250680053010772933618045316302424688744253029336814009169345657084269247336509122280181289256836337987819556979400628524515999586668928142075218730947393473389721266008219785149498257236986138304229453844679875405975256954510429101116097577534696360396302409432625454799496108686465379182478867061613351210502572055924221262739212032066480078898098296056978126881630460515198137206883382397440698533694119796549622525802670077586762946257602134319447830993054509751914821941035881382688324598437648584062879840454632782930953791036856197913780262346689566444290614731803347908601731811034275503999026723170098765802791432757354831745369621456669835038962399945555275901493979618287958786380339067319621430493361294930777838617468410708500656961558957909829535060537235389794401701160953622581903761623793546530436175265301459945865538892820801443285437556640129959323949559860121284261823137308718179923414459028761689412110086667517258818605626303679742702822035078617977223954008695380524370922706229712407591970177005179362614035058831993064899073450772236542248113098111035316281671444155766264310340923341468505513910026243616809690437377573816391866455215973914070104080462142309368873613169607424084442814894847070625592529714528770195127894520706766324905016392020562615558676073563170109140710755703396201900430458700999542107373549228543422602780360181009119434654445704114481162722138943560875865210539093566207091214133289928678932723191945698683701457360643547253041578486324940050722319545126303211203300963591004179475557115232331922034814270316114121368068698360251702170911932723600168729017824521229263065442568431705403654540695925940567433139581567814511965683038138890578729753939726603179080974193580587570299183987012569451806882913644554193892586609606966973550228251001832202154639412424750337048672227375518483832650044612232821820063305159911661097070602262483208155277995066701161878786604195723195307187355602776001236424598963760251395564683838267319742250137453131993990680202752151852908050861373739434575850400020260891360100157173842188128679867478539910293556964402769992386894532739543593574789095109110835049642336359730561276967609930931741561583595059042864503094028845419441092865414363704367855298691147847044540764574935532405231081218211158275251231613597789736335105944443690319266765673967065455581724706754563076237633588582966583320096748498978571385786237755469984917004636912296206990140311691409463671152618900051632951683473410821712400209727392982496672262792279306966083903322870803442623472686062658834487614905210642585031700768200292352937228915796117831345116009852635686912278694068415250478507138502789256726691474286064541832177104499270902183090777510184896391460472685291377014679867005791290524142476194700746439665321697147490812098904813323786733672957700795883104624682065202576957591856086843740652906800866454803255002468633359920288559149565782315560047995156413820777584904271718596320941930231473554089415511548491344109864781348231249470722773720029896328730041762769605381072756584559470520330612287619643124857552466708305332961759279194773628504536966342062034206585522489727087408821692628893511084006660838700105490364459754871251507942506931897957301280678609621748494677970414008183923878937229793395953915192358278004589676792625379681151611594640805848306423163824350074110840628530257299094599516830867023030754778640448306851599325612959537564117251551632694042259588813728525602188138056529816008204785998101642510570739836867850274108978727729944395209769088336897695448034526678738961203070970674480918362208397216554806939683619681211009608436316172893562297544696728769347620501393085741327733028040039427276752587770391633186216688938071754492581203125206583195613487725424204329442176960591266428801271778868054287392150000935375874237029817644596971407765695314886008068932299279308737091011812013645387079904102694323441748815578106520475969046728768458051774086972091598349220506543101064220191466979304618510679974328484212709429611783198727618879567919065429155918316914236432053955213169303908002714596445355531467792702181134691661594287689231214971830855526486610035973676713276198167724602277016461400393915201347320211897376867387161298887852615628340274457847997316518458999733918244068416202505643592078430872690340865903250959694381786873986972656914570202768734583087567577458774257035027817276910006228173899920972943583683119154841210950570859081126538151303549360607435023700261830126371974660619895599589673675590040424439080142541344441238174379080045970927785009595927519817955702390777837718427015769104568593079471925381145790827825315359786213346862046818906318341467312136359190638476542693734488732915806831105572138017287221913739843038423967693002337063189442608567425000352884827229405467184775357632597858254210780020309615244432195367429055414445239326000722971138371704245674562129627572077790600435859789260819117989683431418895845311125111082968546034582479276903004521941581005467746214849885345131632798473956414768501518413697379228796987696655542012943304799618212779207728390037167022138055685911384947805008591865695497320922309473682662028532536465294851255067494636836035888715096779099874001293028213998233781086480083832704137813947204532809228546036622529450790284396592129745167837527103764228110680614193134946123037924975329397639799555033740681031984074407355970266236609978627423565039880473314906854922966341204595233834240290039643468460374726988331813309536062798664644602235488751323264717072244611875483777150633695522681382056060393055597043105078401595374870091549666108376890858994312423713803160626809099907825334305183010738185117431207408071135302374030930362204278164324653547860790516893290051588730062769493818408295173840809504754515451975361402253793710393033973228241559758890932823515957206626703337927038191812836878518861225318325886523722613605708596455140815269404362043837964798072014457890043078327345559925673141019759474866204771687675201240183349595734493413657371332864384208389369356999347326572264919288410621500129236916753406308764840777994989513688025230155262939885204474958416127624114882561784589070163728248356504453930693042607620645881431172372721570946473580819145829810756412742150068019112465000983934632283725105750640355923683700120618343746541281962489916647148421603923239613963831824533408934217316099467740568689615899723411207380615852541518291127638844118943932097685956477089197291277232917628155584730732757037372216939912155907353840920284531964647918734422893529348505077253235471266421982046852001550995829210656586363215699922089562403106428255781442730882716520406482431328109590253114006567946693417893779764610021866457008357835409580828842428596898356712714060166571864431259301730392064281110977759915024449950131661300350709529286319031658827345325846593287948036273000791001434793523539406089276359915661981939004781359597547814771786887506912564983279131403548855525159244457094954984278885036489897096679281591173930417300994890741499513226780955346723192275583153222492348217935996219029323506830668897140927194689824492616703444932838831155624994600419959132432131451830584442082498434107324023601504416864378528644118263518052775294843568737365925039464283913073829862536305708918419733035148869073779657110215889061284947209524428768136440390057054093766744533736889851682156641378173832677478822986310620794765936807277909925018884755707973334599645277983921825504566335065447568433824578165806611944002607601532242926049471475505219711104117541543512004333388263819388540066338518122715551321150599490105124977235083206171730898630092593876171979651001062653532526219402713092746041503078387229523746115052261552521592869691074114803984654562534668081263783596912842978447141757021135619244039908858914471859408478958726130067574462543322991279044483093591155640138565735860683562851100274716641129118882590891494488543302994909690353098300247930536798209547920114052404821683371733529283146656059275066681209345566391078392364784160232754265588605211220849633131116157214742785671317205998994575840398407370266671689504359681506675871234348695533722452847899557669502869723798984489753368665203265385685835173833861721196833116068785710602650597718084286383614195824673045894404805070503739741879556886179551403524419215104839828096753829180523620803689034865464179100252584108947673065938404718886970593632074768547123464846725222483817007107057243122497367298931557544726129391702664960896658508374919232108852518821633393360624731064293895784634351479780501051479950297314218175747629311111934089026532699517711676155452546556433976849135649386853994238174738136783460035160881645597784069704768714177635706673171646612980113352235888814594465410087023556461973377578078324057227585919369781150731234589797366724291348880694306220460441453050005639061991680439022946380849189164826308827984104538191884319678158279610507975901362489788987559817947181156380668927329547839998950463621829926045560592529309630085704572325321097526420963485342551076783169687395011947487889008590366428835795938248487368254143679261712017165322212225418872027562745672572261074163589254653692335836805480372542943864888407542658399035238967416350114687953068344406736372281695805395906424331405605991133861071710419569936269792632104709448100572994261093227387468917626354683600032224167264182178385624382962197826623834336458886093770078482662764013799828411512197739190841673184753563277805423942331751152220531547865621656476475721990820988979562817269260488395050684092177603483017288246166318742273303956591713772316650304452440292831586567233089424111021464428523189875012635384506257211511856385379211913605706854499875315049504151737291404305858945270878138468989095052852587829123863168290525249057789870141349536949918097434221157867201162852977102083854691189340678684786147943952174372567104884851888364632925939044792127653094555330604888183756874798130756840547770039145525769830380541969254996924454249959372042949818856316089994509221529995135443408752114428162858561572480246709875208471812323392712917052547045679678549365275154080518488808295209258013311823154012809802064382429913471535705036193033444580503872826064104118205812496201450699515829608752390548180869262311802614528664530392874976683146366445972484396606585255616321267486612507660250731233587038667670985085397581299214689264423822921609738916007842745511507381559428831439721660134147101890149178367741375967916880364676624383715010785866489039498171785784575263399668498881104308868378425204567148847665010426001491593830176071628340445413868269909113178610663883472952088265124160277737573729256941417871052130695111575742307930778708552408941733923455011519904948080334823081958905949192604423907574864445970260482667134915806390089307889917835565582427508780863150475378155828121571165045688068619269422290731752436903588383259885887398228927798774446725972786384562751176150085246905702541596491701669083882430980708964867677463625583496648905094106988365024959799186183766949358174945356306234805787024011177854625216376623165691743410830400820576422141481481732590571834464311312272671697907694325474813227695886122303069310810337954955076414289260774226957326300348680563992894248852778485773487586538274049027229783421006745832534382165298535017993049281784957110677645246683715535901401593677277660011565981187124588309802335070455432515246099701983275420206459496116104923665346421025190405922319109218106719098968747958151801043297955436829174590408818837024636168254999085830746619128255361418619022086553897133816338218778883207215376855084980209702122500948924173748204355161456351244227110786807572995239822756618193143653034280313357814968340408981482086667346057296163900464628826220024958443968282238526911014772168863234431811868295033696056024642170182517300022393137379678922313895587995958759309131163154645034721525658792350090826362753858574380129682318885287628280056121331012980451746713590148806584335100646319767604316126913511249477949422687406099319822674148149852983448783292350611444886481653140757730017223259012333086115318240143309584871220628908228446404099658069945913409975629372794599382820385875166764330449466321299790361203057484364783569294890383401281780324751724853970815574447252337706957221646174002319724028965830671114236192051651405933912202535301383835086274348588462096973022507417728037821349953325283413953475505901053705819199795139232849701175101761403123112925577273640243554123538706536103555396163863064162383457529798251107814044008654737933340507912628472198603968357985440396649041709301848931952005568610920436403331759810045124336147388102245825248440662157412888777076083591149394254663147385599230382569192196206544469659562474164270288305420116419361170375157471180952614281053957297532714582449186662503248400822506057460643633113614556420998407062858912773519751993788348669577470521108450472476970992536520899652145256510616586504852660316846832289335053152567042057339894778208834540128506202926981502837976665928469381712220503993684863052209471532459948114245505039092464124960294002453646273015995263532625175691793711494097998862541736583073424587969746552877751403210022364575113060580575099252885588287198104266182498695245511391875647029506261669683421751812527185456357882645038476410442372015102626930017313162316760964845049272879357226611827709618377725494303957992556278035642387655663290955118278371040168583530128082607164043512533699126309477602658721074375407720069266198281265371965507575844341617100942008669146881313104904690002667588833430065723430178336967462215994371365464018525796514331250215498512862957162799158199624765740799059057583642965086218692997512860061951153820156009239812404732474789318195869408897815329136940569269198643240382825144423280673840625381742657743297909346225702810058500490066576290916501843616658576080089968074621504263540507680389869087711264680275001456514833629824024642782500973793104774802120971817294622626405563405636980343346221486275554420522560227319598109645246771162041369660841509436257266915931003584227768671962858017967615137194827298932408915821613799566693407288861497061737087148717984573499280804657993534000104292437010279894817748927452544491113205230736063168733712727984495016120415242555696545729666379122538857145971736773056497189161059232025487098270030066091235985327112215460097768359089349082759660784672248835358725723086143573624860981802433967662017968208632198509099627236294806047534638329060833315334998684596426303426543961310899933290468120790673417852096155586404761242899583240153991789221067562033721262598040353058316716171007961842792836972598099649400595575667607031355381911258268373747269901017826857670030739896567386691622494213656000208065422350487671314937695309541361234597030245731580929039925398945818645972104889288758982044605218593708147266700923976038374271721254629998250942914109178363134369792816568987039125751910512632137555063527313596846248120905085461112985482241329399910360480141582131722564295626267388404134337291703600903307789695246940330603156153179359104925417164130052144448333245930427801856146922151251480937184520741701384823903872076738610315310217332537092167499055564956587747355282805838014810361524855741941060268749401196954701160082706759261995512207542620149325597819801565169867925343376915739287941293977868755390972302800140228571968981822101434790934845199844879684724030327889653985543798315984476708788171991099221200513648615971759920775583738359483522434656598163751323551246540558380299960429580775017537837040287887229310037390068962283073868919254463627617771042303917263097115117419596536910513928434535727517238752446446010383798985435761215192622367630560402420403953434590289684982204597745672962608799427903839846788513521194129347231591916000719129503337384612529855013804486603992588416910698249826676404652352271362512368642304620202335404576188226111875895356217784928199199030446543137701559540667747315479383568937164432722042965710243572813217912193523748927129736389638719611130201324799314640402836667299586958032741770427080192743947173348310989644779017120085659972757380607278421748455464223909636896059860718754712018460086405724253171989157131927838640453374276414929218744960207656274204564062413535933672244923459909260379217217972944432640107026251614486301887210136452473016257265261864145750421544797343202350726446252779972876177464979155130244591790705656001658589005997813517711182331865326629839669416614648158304186987056149421869794494956596252856252069844744903201301446027011180000028367054659454472976314247405877975034392991431300698743129641409381480766418127751583092984658300218351438021612948366246253766726771002006237146163795681971699722151760611323846783347545097659268720035645642686550230256336308957496427819307924896743097770768536921579782194620537631630737064884031142240483074944954019869836390820418479227990699205890423539586178954022187586129515080424691205925105533665140340500850708367947525353877285965957562528050927637753011125253745450003176667549507688769097473817946733832931418900629264249446694733889016333829032845992560551209299474697875280211812899624410003266696290881464682870195534571559388133031433335020788843999061211948607208156512209234387415818502905347451630737285687442974583520358464741330272262212889683073875349905032287799727174828713889038333379046374625272647482310648954136837522447491745604445542460069614094347296595973474382917508440207959670211234698828310080071947975382849296255949155915656059062663735001918686685555229221951547028539469737406058947222921350363318926883663083527593961574006744619830716330015284532674232433331797659923852916514691278981406819089433037764430886779431487285143767681571519482404503873883110305266283621645977328544704126077421097357226731543704720922593174751012902227676587605581340397261150931501263077384713363650972637063397153966989254706433226798894967093207456759321039207781407442419415023913168589913078135690470581715917998853037492637756654249831732677685243240286742136012933376577429919232532055904918788349294864715286587506572253021728570598118907881501291886240917928989965326397882790529732391432502912975380821880022898436483481247271820591681244033258283453605148093909195598196749759851538584943318195213606112472248052663398119905353431903852977078266131266732953795208000049490123532335450099088250191145089358598309226094729659397943315693000002538936304326196168682401696348201541661954066909870387078447587842540147683580047765701507360374420438686911850674841872923372267296597071417492493656107314538453236992091203174155253437944800220310146619107357235734981722013368612925427921243881271127855899389284643207097841301236874220429847686524235363882811663170456131363592559112080195059120029951126503766202642254781506100878285745925987395076001783775822806066265896997847559226112927136995942453357134730961174460237248631322134107589586244302303525377826392394430570192975402372572424272407421849977664629157030740745555777165332091546362773499797159531401365807060535317676014176504531269018780896232296273384046663169767846594175061626691706314576874991021394650983586031508749470401093387948165276532019592077562985888198814117906643240836351805104940426350916830210848016092716963045619350042020645201906462994715538009918165415691709130822715295722279130048865425288492636885581785814939952167370558437757549570761456486330823128863491910305926282412082105355451422768088789135346520333339589519047524475891402833716917812663405806565317618812422151458872971772042196631845332061396901266360855460726799988855810837172605331003457053721502673358198839758109165201440609141830759618812941359551309948545723536469059289552508845215763767186225579316347630962817834035699307654615359320790179503898712908970812058852430217834207581104399746315981446496477563697148648265782022037772873845611898769034261090601120869763391076137221756957713842448506499029224499485601637348432327443909459470380012162425063259056922214349674435045808874236129901839716007023079091012122054416356018818776209312617145880539104581482162794397930319928406762164028352012043050971092595190517683025456125750822353474651140293501361375701113229910451207933562006394822522392888897527808634845345626611977341226295888485610400552432132420024127896671428015649792539345033755930431643516527447200754932385541512148548906735707256994437519122894081388737877649225415485495731350995659633072049327598386872244789268686308895024464303094529079391282215648816072314084173111337896492440167992008834248785719646465535627488552265901058354562894520625478907687231229612679044228143771850376068561914325792463356909537439818287118436154280075535391093194159697761428075831688235779148008910104566660601371082105724403327768210840252031423026281173386542772033999384472483108862927505935385817574973822853646721178896051544523460773511786326940462393079260855453807868192431710872230068988076369142762136280487340453147949000200703229591718385123209441320337973522979100137831090718553238416213737228282084732368610189407338121995468646922982950726350028793885345126518854877367558557108297877789113177979925437957644045835990160224340575042266436099269941856977190521676981401370153405004060883621018122104243339970603860685700340901999126744208710008717787018494311844263379047771914734884960567227719970900897581082908198125794943034123659850576467924845403230109877233550285662826909555465926448981725493748080102985503413435826741291568747047021252839674528179376622432043850958931573735142622117426769425401630086135040731319864599099162158114228618246151269746295126696955334158448664191136048194405808402931079628957755816983647115206079145584047369642994947812900155001970462524691866029639220386069873769929073187772155100524428138115293523040484313367324996777320882698584472931297160603180625452288515007392439067879890775231069465770180901591972521531314607096173791688054509926481830618171966175019539631229998674532631318019826452343764496683695430387124442755628627696709450228719483301410642799411652124223540885269951369322555591823570180221229196028035876658317531354900788095523492947942861375098116972648040254820896590525539675248341707662143522801022090807184735604015947995664785006419416216318214485998596458190211628381268516508415625911371203570965213380071418993186337446742180246363296304271058162265381053934517954814977862247047945597697094851657048607180731684498793727749924108532891517010972317437117057547184605324756118554798701860461466780625830760065135737178175219389683090217821686254374664981434072213436150344067519254018971788550933322843066683018252989267581475052823018564508135400400171000150852280743562322726241401549053260435814931391518870785396474748079222188421881994990177883582373546306668793923499159144930506748614019947593828740026263273594352823108270324776738691500729157597095640040179761971418711642119189573632979144179336131234588184083848006733814305399794271002753437770793350118940762453554187664935896430312590469961108044549108347250569043111351141890557428265672694631896221381004861419987019051248204126713890588873209820355846301380596381684041683757287400781894874973121728772485686712074703367602653685823842371239838678580800038461855793149216509551969277231607202181692594115460500915772689913924638985173293694545476830055524921123200942693970468179787510560191862860465327675904464572759756381586890486082422279605564561992251803724201521586033660970654536007921875079797249302154216527971409772160892643062576718258257180082349927099105616767650976221952222831437373557183019198846867296981398407953933446644587817437106376045351827436513206183262882500910770608816790353724147299721058338778442834374221476195320097590270343857841951724696874124600875541739851189484552539878238828277316773696387057555806603523614366917405658683800334786691442956000512814376709943161676083007269705057314561029841446718372529228543487203987769151103523393495377612419480618707422022559101293426988387471763376731150184187615477789330685219190853845996626396822004356456466284558342228901043386722785046157629302980439874786124604951695629613214333395718608418016763934884077246001278172954174699992102315204886478351601319845148199249387311729174935697020790632438421103525958911283226525157115941451735576640710271569185674721658083128584926474907479235817739898664211904458980467433543196415230762931081759644984969075676152839227739755747246768295309477245902573236502139949289512566680698732887187688944994036093038438001237875637406574868709459558819041010794982869973347718295048755291450074386612522058792932043508542713764632741350613567535602776076794802867069279425853555576237957940856823361944172759691752950862915456068439761923523840592979066767255103438514106640334289420020847447976211563006989618363148666099416743849220441432887172701512869728763183818462650516869010186818295458224417239267228390461699227761872202928240760573145286099562129453332231586821587359094441073963872965228891291469700335685909002723394145953425644020990916191893740422239908392409280706160800301472392681015563534430697149984117465215257686576360733920093060931246267431248017929592311785652206723874538383418002259408301089767615341447540300541596832677230358463424225619450253313933357048586130999552538333929007335676081280198387602362315952875475506069853604096002311209313024385256694421438669038805017333877120049235239865003960893212579790679911724950776740767621667147593819227265174085878586824330599105259565158791098512530372703171773348537154752604119551873307755059337117073291590655973011525567973834017725599589267481738040094245538863927491236354417179363783920684059378770351216695256611394875946412344331197005754795876419691072136137521026133806132629980998637618761010216409959559728027377496239466677527303638604609573128927030569154392823578627309465903094208866820247712829410304768360709417323789668700600875321011266917713802261714749746292230028064682302077075399058436244734195770856365143376004820294238583079693069510556832197476967895038740925526123597359291736508518307497239544360103701300836336407166404494595958099184368627925716433834301842790759697463048199175870902730820535483988656759301511263288398294667628704680557985207511086302633580787979297267772330293354847953658010953221354904773616615583905300606888362595409172165944707662672987178850992693680584894252080185389372169650594908851223780289566075369764575447015719016212761126758354124989684543019573294347434379591357754504986206876719770897756677965373980232524999475142944875887749436072002901951697197699457761146165705682632620931529180929032315798735533301113053516276204053321438177017085817103005632271998113293355173922948418959947214552020046567811081384734823786045501420978103061707081332004747002490266164787482524205486509440975634345472053318985649521642120763700207441159829446161708886984077574548736067015219707340544703968318917317607723540634184677721924511036690978653341974949182814260460214462338026641570597245087925546195013707728076511212818790673161749450780807511781743638566092945340076052156169444390951111947214978355620885561018047072874543337477173240360685220346957656187322616030175762478146090201767355113154544278969104086503172014598141810194902068983057138790528524717471851633643328336440131830273505863950311358426760319639807088786817401553662690793846079301503032480243546173338663025355106076810911362652567999510786983116684851634520102039767361562528587904719561965250284551914049334816604993301757388549126580333818722684625564478173968522379349422692558894393617985460686594451471245283684521714077250091383925928590619549322801533337996855767362264067768667906707203978908559893744207660814264005084815832907314547109729418730807555517370556146424343934518558190344577761598221425455430462127218650145325638662022786905058160281976396253453663141625518081905417127685027986484302411228247081949439219619116575247012423597545935596571704755537429771558655233177370819627682648888385595375373467393167182468543138044897088029151690149942007309899782540414442534200258924652824476395775259112542363765661605985202025150295513667374843437833582082067639848387435286286159972965392502168567828020250453891388053029385398539942360670200667319390524429021255125448244794499261932684692599384203553274384111625871042978790085502540802262634554730404589869237807573104126057154342107726237296299393889609760827833156326141345464046704970929209829895395320400464850307575308026924194935438126705592347647729742143334177131241083913407473500719739042292172675755475173513182254846403475023665262477694406210163358101662660775138618256733595557601856834028897796316186989296075780927865034846657198382743351437277738645394411266622702680081886781306704597979416476545416112239867653044263854244438000837168956390917334033017911335667303702211192836385644748749648189719811364161722521390192059281873970108444903164831194698109773925985790831407660082289696115328344938797073452375109232241058734924503817594168211148450984500113199217099652845825562789554811329130355752307433903002170998134151328540210345809650717158935837811469899899951910386873773279171535547045854494883572689135559080946707468857867278664226540980856945991750601873968890906678940220781799142222508639401614566532940065991013211439748946532624805618578511544996186014723351561505121772571103569730913772168248754842864975798271514124830078933846097305453797443857830591882719681931390704921334510118233591219069977248853235528901032964305975930793892240241326628880094515200346310870471368285655390642700527233991134611499714138481563344357453029318668944771346814439610653465501474106859898072872194717601418366182552993689726945342616732599173801293836462792023384442272182762871700835946981315096718590044688459458977208912094275220463903148202257499043425541984848686853284510509401964305859945893760162884606308207786728612688956230909015157365836883370707793348753033439613235970676519899251855734662897236401499315846386925204449145378824207173371579072695387987533708757752471948092203419098896410375713016773984624842475302197411812012019457704904265174154966698111502740468797175808779091693876615359068469985863987836611234762814068808004318130131331176027038965335476677237645175297654148502708678367671505898109415700808970746835489519621229361813461754987218858722608013850001856513968670267590281865367717736980388367599111184763680347776213754745208692050806295841299349934424980922080231139266527323820425649762491876009038634773959170093608527246119650029960285970558356483141639464620637460688337522648152985552855971428314890893762938623405446045672873828843593176962416482333930432289950488477874773917260406984007283707786216635018393529720788372187309011311519499083609805378818437713106522966183360680453100512876333005231465504419296365756520732677190642247813442042769820892457717179223106065295986476423346226643685259223588957502491207069055839917925019856041803042706612947139329156643290255458025874015462603660109666422920328485376189001231612500193916751517885168379407790423345159068135715564805213073042840714155470223760840725767709918323239776582731707065568964034365346206363431070084595101153723644394081616953005882321949097549520259655266848514531318769936198959735604286177053264365558005885935192400138689954811302183616861921508091180844092160616021565915676483649147088692460943839787460607106141920981318769608934261773242566972989052385590896491686925356541273846173403022219611912900467261821259724996970263228910953200302456424821381224982132440639204236117011997087625788949988104134487901077039597645857974878689273687711820751446008925718636965249483624637614444912566581300092392840831453576708632629563618205267518377176493376843231552436181052868560543047434900581465434494533522911254995018815620232372021598200313665707809687697429981728152879960039090503957055695593340810103035207214182020402492156194826754203859656693231714815606354502474331695403236605855685155522291579787276379635188912349216705773762278805094212682580039264587466369462001833580382020859721204560797297409385751098429914426020917727206161030111493436724619290557239543125405281970803019211857340837520443045351152690043503734397319792660719075142941307342538700333407202318383600667576680821425902432464019881498663438103290974066124670622870915095881903576838564141738429807356536421751999679867295427966780021960781681380194615854936375567644979093912960089129156637816067878722926818046724895529095770472781450824571881215932550911950167622199437744941588375122963808072110419511283499837272644172311160730200879126911941820522152750697888518557552950697328730337485211356012463375860555041696465124127870840342177477071054137119833314791579036678104060722456052070016495003892011601462676785283967979184185276120229496893575245304942554098770650185432354931596379473569709150352706303869084796846103207834701218919154462181226048220932106768045222070839892722411032126761813927380314524349542063401360243381606351049402376465626283533284667867300522066445262520207741026725066309795834077931198053456746982621586694538391705599286920725284269001780172783022563338788297679471265824164286325707377118978174203224894951179909328048047710832050817907699529380093381248109286244741614332935739248280140232828376461002651231019796308036662317183058158897207843315048438133919051585466642757897682038297949513763063226171625342640342802398187542182203236198778194712702892312684719274379259072944100694314039556334700697201973027605667434059420225885531007210083453845323564236879399245700817067070840555783373458313484048844409346577599357647274490043615998576289943407558601726549192090298418733430120218516166655476264207353392699257027488481026509895959775985752835007940121770974393909287132983257652150579658156386019778946325120948852191186452519835900733621826831303093116044150048451879130214841216180487914006729416835961681298986106537338089582356013579461042607526658795952515313035009143313293837059373615937587332068142742395881611217095788061262964634503967582766102805557859903220089581350905225779175870901310138020455336681217998744345970822731844400841117322122742524397874171305643957475160438805668576747791176137124253610715661121681457278125535090694263887326617600123926764350904386735349017324863460547904112627019772535520749872514392826789600333659083371582697418913748405917136766184518987275537871263428863239336261964770201237373869406769629710108988228472293362157164349677681256974518808203523545210056317524194848917164892436800280785992007201973137000092870308683314388379700085289136226298653605618377476751532559061221537744226152555290757095466244847573421221383619391567082812534977065397094196748855027949855701611941880474355174915856838924760914545443847559992622686288875131994543877803966895455673821907361541184939657455055244243406746777839520745609159098494224044284602029726075893307676454365307293714911679046955672623362945419474272953541276504236170313678624798612120467056222436518555628268559423489404343483998105130927746101582088867773828996716164942186800010695770802810340004649014837401525533729932306629928361442034697316525071092079055295119513220191769421282410929893222027384034983156571971758974818945656069938082578078132524711007991810408589819921250971107521245553116435793842534709417466037975017583654572483974273341718313298628492715797811431764875927359642333284863436497102078162734525801238446685611320863045908289692302411678103947087022436401941632928401586761758611261000898186226430276054002594593025863450790262866984441047216284350231970793066785330627164569639907144746725924278259924509942262476208758254305717365274933946096531398991733516975746534913698382333734878341357316742729623946702206984228576631788537621000554845110859313307776013235053933827701700030527935325131323409681925585604366191485909023005300677220951255532524423660398286111744641643525187362483116132626468729356189529192598737883168726572184699015026516733004549392410189225825561941568282155862888558002586062755725392823212482474753239551088904169276605424174373335481216050310380275881186912189918414046118360148907275319221622890515291116648312169499376718402265708989567771808298131569180846486484574881419097847732008633099572387337213629603336358532542415230712266517065285777123556509737306810705097938525265272186505348016792513640490393981150585601673166404156983543871366975240283458415763091660671010813323507669281007805768741333729413454337956270191044533325413826377937750561466791337680252778564903092126773565976783813073377550333354551225060303408768944611669289663193652813802781492154473488405609678134647583891905128503647801743225570611336026900299086308524010879918042864042078072730335257716723646737630275396348364295907245495748501190480890564527689456191767002753903110976777451832332625107592827892017497114977674696579160353092014215457491874143062772868355390298786686207591830735994661524583121224079144636272597301155348486593678554463590615637403264116961981773650782152523393069026304979530142139222748534883957420370367263164481731554134811536437981615667906370761353833598243573225671158226559063857620421728521094644497045903715386277793812795799875253497893165550878078438860658887421493034423416976073652063999180805871696430768822037456290816086929279452148203159682448152611043253596820349509838920905712592559744776878796952465037711700055841219481993432158127977838735390207271239516983610934807807485151615661935249344927653555465578718728849989593442599806871181458039774979259072648653269980413939768775582906365052075212882655558530843456799342085230212043082821173508799990038633076700292963531348062109731643161419869244729174681135401974669160921615492320384145366490690410791442380895260914665170661167730099444692800991855915281093629418513832952960608924854335501726175647244382235656257122577277497501184153407512385637971350093573409855589910556410432223432051592443245751471830678920769155553078389688177513191402644266051355931914500442192905314544457379029625208076502183427546230181903651511774524666859944397098148936982028119703826535271170941578745545324074562206106128463283752784567220372002307634803237172052501486091506121423133706799262746330139267549551846486966492833226817663365083561934671816875906864506036011289521232231332913405345753757597025355507839639149169945046996010174363293617075435502953143121587026256988285646373394524674312967717942987324660152119657048553189745983763009257820843540512700135097867506632863704504683416474103591059861863758231871079774941019927574114843239937689798962370285079551865099675625469972637253790802636491085034679032674604106167254238697586915363308035873377821362529196260054542020936797262188774429286317424237567311020675093397466814535688513091713733423875080653143083469854333158789874100168800874933618860415915798584327904752300009050156537139067049316189438791752769294034884896984988820355780796599706762808549572968809337399934580173294192244901098942329226794826176701034181734372188252297883506770812356785776706255435234559801676682202710269209340490126057687086696953800592342581143546890037653227173769145734687467637518311402836633249375160012063656184615782361615518240968966605885876912755167169022017152828210280800800140106292548297491564248093789432718212336443625001496051643331860901783558987599697761992776247386067448266630813049718774924262042890171273842812435969240639613929043348185690306745231472773083467707732324329464591925910877127389612766295503994851902685341896840533021456112243639781050694041668930197742061562677405519736868437435592479173721130127502659017610851309783844343908611996363129773982304416570732242154289654929446504187245048143230528474383515719480016825371085990857863371275640522640640178614305894106783610872626987411391295755362178521322870729015783255903297554607467881551979658048258382967898961422246170174857199544817964061742961129872818259080256652347671684721199479133156005985654245661690710179633650038674562284696545517265035080821416812491313255820322099855753688357559529823212989357964698139970102790319128536519969390519845331345351759978965331737430538332184852982848940104619863502015603720036040736195131214763183445451651650159617737739216753372097431746374725853518127370204870697056078781804612190267283765656327151815325987979550930177767287212949165859429808325039659131954949174752571028647950763271914799603065392170349473424063017954654772669659757955708166609908004582532170252537464009930599075966435066565770869879647420360559171898061736033623295059722503128783120586066986010318988430652869994682745145790274702803661033014818554762404553497312433947149466340066770762876256820362369475371990974916908725384704552850669461001376729105632844453211683506792888391432118277756308422416587854553278736571823974701411901253720913935881214015387584378973781448334735600677738443491903004574732663457490801744203937456854681387485082494681174954671165792447178639922248089009957031821849628747992260830564423967072086052677295164624885809117155241429498480757916399076657686123611650095823905681882977592462102521117812725490695991560169745305598036413887310371121365271062478666783843724452430453568428837592957060963870431164138119714299126610315647659203835160211029850769083801259884455032570732311815292934972604967232660952667205330988763005314187639867709803715532972519165141098915101111088655490561891627167981084060042462982865397747822751511105636724227998782991288905486809150587184848950241545719358817618315548796499876981224020049443864921333021696786148026294347858576598842411155492940584209459713839625428714049788675128713132623372957829263430022609267085547221954994557836384435737053483490643949404575372206606309202520928528573814685963727140245225001480110102895571656368905666804383890214415808722124865017981660675035824136651404687662578860998462395479783468671359659639026973638296440405498509563073977124425158811214123235948386854814486977404188424227867941710988598568267103571983699096770795394443183251336995342221296515178508194719307316978352963681438148047527919796985576577318922691382444149697307136229635408819568249934118568288763815698975839044884165760523260658754758893086972994636275961904563149505519263674116626905480289826592677770622414551555290185267208761187926884241233282547882063390926542707512764177048277201189501986441333027433006261456295548317947798605486381326447705364614956356636745729825929440080143398598071796144135248056590821839771309045037007834954900438290278756959659713928203418634063777363085142163120430879710624811059595827289409928933576766956821949987499228564085349012700752330385934204417083908199033629561744186048319637235532790069011842752753887449332055316117152930153035425143155428667149588144227311061412561118858159835939424729861341596616492776562336721276169973600501732864417915213415233605827089826611676705069817232236014224471081235451730933413456460915084638342283413947646631487387223570507640114578749227599801236093151867898626533899977204254356891924762237653243216338963522964595606991247778450265463022816956119134423128855467032478171037526738427356279853726657821962611444170277551535397396305509932689966796550570575991809544986080467995677862092797095192012163138893203039663084893866730920593668428764408050652947353156675958371116339992217721447532418824327836129307755950445688202355941874745874098864318781213142337390236764240597235755345851658430995844981194932504406993071353169270753075877587396371292680753691306770766515203231078478545699732985418954531943894749428906341054457705210998714051082434009325571089629054805448385948398247251630944800199494091411326966874328824653374849511531886789252905480712745891670526267849007291591066332192426670820997864881525871862793731667122962754689835406201925563541815320549508721634423957541128107044752204423650834001674508927836623610500964668881207423598773238785696378871937753044664257123916216054494105975875757230787212657370040168378354299761795782650479904205638345195512427813763644194612230527338434671829289574088423348398473750219409272231519260854414244419831767396736207524443124851717767471753450644595346570420772490173696338654668687454849810583871289294991691380383999919934509268269144296944424680048030541114558450835857477709225156621068862136139289844962931101741622926719447584937981027735149488939705466289328920467166140376592353254060375146740946974565484378005706499131112509399070066642179898140472245311035446367384028353113962639299771372155316950072146134966236770760769731812727575317631085583974544876718314784985433175744615705666496318097123679742422462399111947451717387911001202061445604739321554745115577270442252450190858475574215835926661684844180559364794886963358603920194741344392520980397224178185058238391015947729040472883775531172352248623177829904737632090694213989458966742691500255562287966118779695348276213458956548234529616697967922009405167653751613887854375250032483180420626599584865300568139885154370966537883215504088464177255013887976018887236520718598109808681409660370280004513077380484220971377856423412906428995258882603754182766636612607006339924652754678049322933564014678574623826609818743548479633384948305376446882405290163072719822793737382371190447875074867857379092880475318856912999022049317223268912464017935829333594624128006842793899932363361510412513162545145288595552056906899081790281241763459894100582104973912357215464207492424117671783636633778191428347942220754902466866944653116215406795610092329702057918461499634992665700682675312728705161393227780949729494852497662684768080805969024599753360925634081638436899854085022161110524517187493102426452913161155276134504557789247431252715828850555880363460638924344163463351797387550511255075635515464009071217088984836165281326524777411585513364462615818042019098727065406833502725246621661060916173835196735463057106548754488681025200744932784536305984209285476558311256722083506825823185388544407586890287946265397238937062394100860847069701801235691373439845709377427414461605906326489490723491247567989039727052667729819786970406066272640923405086479005042360995114077645362272391383676416708730064519618426973767876168942534765651261438619502401185433444752509766392684843898202118552521292096320355426849221902950684599542902258673267019352761692209076700272337494879761358537512263045484045741878233305230215371356385373427196164795825959965447095893278123803594141896268185422938505891034999214646326411270189295421869389394416760959144840200538168761846367955168465441303049329131545761519575797336468238377354800126349406260544825514507874984454358753619515741181650732126165106879668131135011592801148513750184819722612703824393964469210473517348246019395131268874030214375009518602191087119519604058592774462631630644039425604020307046659605234915734256663257672918487313483621011624718597643649140095525635585276892529538951116353938941754176824354290516995419562444131881639205009468793959520090557594535493394065318564297278648585028145139615053426528329890636565459147803808100955498102969067963495928855076378877883996430019988210033081740152296445885199501455172198021344227275056328518137156458325379303841584232604226769641584256982481736874319226675452609871578871252662860552387437790562359134285574144432892116417688190495643321641772177040036072770981001647406588997393722615508422237079357682271785116813947556131226546339031872687666705205463133956208301002618562966098587692644369101897666505435336520074754732026242718819528654326894158775382769508868564310710063558220560975111558430696681253893411730749109139370089175180043273847515353476871446192907830095193828349830084752267736235398638011745087426385331374557973074728137154753831029489679542585851811408513287372822910239065447545420498051942314921323091005598353255205489066662320881147047418260864070653489291949734357827460087296518290445874658135305310082902632068913867173981410023109708878957421678464361322561288062578160864765165363541334725577708092764208747150588969386608334428519208749110301638737727845974802410998478311395580199824952898921674514273362637387420528721684357947886868810813447584650130357490712431612017915657466196694505786830181169581069486164378168694729292394826015499676260856022599519000610482493827794073710458983976799190800134763267621904542390282519213324799181463019699946947370341896147220526903013597658572617417880874591492874434895422899469550406532358430815980601575637666570345750346998986312856145406312936096607997183458417652939840747247583899967406640070058832694258290911188539442667722607290415686388448857562551072345206403911022840145595004467411450572339545274782789117461621308822953882062007050392483501676147402282111244684408366799560971868450106800140030478212488445511997814212231206604763443137734804893110179781275377269594111092458005316902795269953220925082437005494384438977532177838068204797012830231195775112227449883690377831212248925443943499122095761566954751503791207892474165762030603154023029206535147734608479056445936429577809638717860064922920072545989268447375138857714725814690746538659574713367747760825205039902756105440597771980087004667386493233409099646923899564362762766384707295059691645106498806306861259963132818168439049926340583851983565148781159939635029890895224283948406580078406364143507686691363521121362264796838184043671638744461990018420301860466220843171717492297119724222191072844559700409406863013020330758605267274645071127694949364979617558388687037242734713656539622860470097785128912414470387602848575097500611874644270608916259170474920166332173203797560163716342466207641615333972891748347058638710360757348977752261986032830930787527979117882877082468666243861822377509234417907972242718395989236266400983427277291784772251262705628453666556871393110368550883010890383066186512441004248963344086189970770664843693608913125738264297223474752660669683055980726828183592827354083315856163833033477410768881062820540315466520762892850430964382320871601190371775474806130332431038056847407870038414313086978837261023668252444191877429653477629324458025946357621797994050152368997073942238307040606241629567309464305951926002731853082879473243152677708095355251632624943139674930058915769203906663313587881381470398579054240827404184146976221231305487444029928994634441981639448783419174261641787346567135391032954389053848834045320094598723176609719846570237734107245837340385352853793646928625717713951102536050528348946659682436999627204886172242982312550343392204171806038833478513730444929907181993830334412896111341245808314337632961198624910229385391269656586559463161788918896671346477614787499897988518758761652403141927095565803952913752843704638446074642553387030769180830844062760460573572543279054175637822306003123173144979320369421272222718698944444129792029092282861028627560007858640633925713889795589279720294654241140072546864971403464268183175958835639859260371420694271096025951268135669497629124892777004025874093424903206366369041430168688395358591236760156700015923461636386627892890635407398341100752310298937855136055675790645909760381968494867379152486313666119024742165548992820782772657562761161868257749624597664710019529814816536602608758002366214702638204724652919330386249838220891172120442864925193440359091859148209914865759636681129251676995635071361410873444308477958728525269777467692022814803845779468925299024546911401710691769052417037335031197041990003758840391911671725594469539569211380074611631316302087985686841297586687592193456217085315233923706757421578658722455398868878289101009250730797112257806148126605880508903999014605744472353179081142759787241122935559047774239499712764403941473365866072235039910267985279151113863736466602197765152900495364638824604048631661827867807011912288149622605417735875756757722771051303288409128789824653169843327106500540042740634478436142437318774874305368944237745758669536421468535407465844730185337411613827093551689195067370348020511019709772571347858826752736665808881379535007232367760089006655855391815874203237325284669345083863710421706788523876941136486981513036859221799778328703768524501584319633098086749890590755461426128018646757808739766838434322216854416876860718424208835673776358184864795993037214690341248775422829107373117477097438891636741367112089564358473593303995206054521602560058777263607782396555979221672339078133862874042433261530047747598087800517586253259626604279136673757770683452952189146048258706168898070075877888196063194986987594757701458695781692756383485265899525879416468166773346444048400268422942919122559428484841776726827964017364188095296812458297153869749591634040298113708576601517805031926090161957980004064055688991189012112233560664598157837678565332503860407940072940581085616363862262452481671479926559539250529318906704364774369185662437001721872207283614825737061721644489146271055879249776229504610664852656744672668260803271422026379442138731273317158396804298042540573993223455451405968267261292060561557629891872129344714289611404641181245653681882592853604193893503569884128970613882273967889873717248217580243214352103633927783443519701531565402278009504442390797800776832513842521480073628101117751824468560301861615316420314492628567825745737604180979220019541197636183306230757192043543780862751843611332202700162957557696073136249558056411722157637603829913853065766682085164276484133151354834808935970201324543920972646260125669600564982519008272069832364893300446356272514311863153336057998919373867626889737888410666126818629402022193160595724429006027524343665055285470451767128399080192671050432504755510793119098746577122538406333176892293449580810718483393752211161427222918864261481477024234662830551483993343308122373820964480166706073233689020648456706231248621000229798713961685271273501756372928520555828461239742830616939175452711747091087262176996670047019069074814818462588847388958491162148899866292436056242649709046697510351051394210366318222805972541602858702372993576024897404433788121909427381498800803274749750096027242319831776849740520471285862869979675795714125285124293388233719667641074223711146421201529284774777369317065765816117426166871089282116383813754921231829500041502640456176022689635091667254444316884801951025972016126110336771491561462746101234327304447956489185433526987346407719366802846994027325806316395178548028892452282415303907004577457116919901450914028432518317501444142448326385020980835952511974821046801528399472278214063136562211809371373481990248922124087798652884935386358901113538299734091765539090859808830692941295123247576809644414015768353687497732023102620567850972121986981047790601598259843791967346801799829363594183545072560958803885220480469654165248198347152612775455838605990542616492425881888064322114683157669750570271275311061995315126885218778456971910256850612321427331017267259325662003539191015584116524415768324156180690730057919899508661073073964692970946101992378406674581071794647462343831410586443374940720511938072979263363063489737037174233526930355150657551820283430659744591474374875735066911832325224101847362140309009133841062614411097281651771242928911389540673686972321381271287832403744618965418966654899884581175776122828140610164981394441298284223420604711228498255822446324237657581224149690196988490030911078526972575220679042191178653025931530443676945735743037228852879549618453216956261949946877199104724465738450489668826647064684795132540435757923504558806820322880950444056310561062072080510070759530012989811507879842490266482364042134739977755814849149960205220396886167954168113874675657657315837201967342738207672048260667949275861688154858708940580206175140443025789125203419491304643677917377389938691701375987183416643151004799741175508966011907371293501957069347190032172031868719957090517174060588696558933403849858484630433999826429691809326438881126967842467152081808247955085555498281838203340269019420761280230835429547846228732225982682578499278378049002441385243064744102912535387886885933309622913432397925874050877242801908762880540416566322348140024143612522203938602550277777948733834388925589177524184391538646703412643748140415452863042972546249762704870010337160396895129834249418488866444771402793592450649296298973758606424778871464207601966781400717044412891187998238191115182150498242538911483843367061069852167097729655809703281046815916311193289052974454410532853892777110544912933795308094943736129560936399629720641975297642793260775999598796653090847021149467202076254316581749993605196011061852544937582036663481694955073304428888092747818734931847319157010673035816602516514700820697638872504428801147417046859289656734408677152528142283202892518444942189978270207402339880113989766150663025435870829225762068629587671076186054159492477233950786708229607853848105641906654934842574682436529797892979579295975618481475946842942975217496503843363020817237768728997766972689715639075881746785355105649527297596132884727503224179869379975559816569420012648053173042455604921536309869220026787865961724116940851595108182104098096154638872095511945630304949189151073647244590029516925472427314390396799595283383411350735558957692335801461241146296814316568644728837423922828729510019949549969324171396983676313009460415711670819775508599318731101584846906875763278206304242531879087865712931204781766062524957044170866231775830191794283205588985607255905854560681396913434309892292678288683709316343655668427120503105458476575263549026126625802860653101815812914652534170832789215953428486281211242839415833959121809215203827127028194897260862838597004790290695416525553414959791299850248858483685327450195534417885182194463021269224569051542251566309189423669187715612141701118260116460034988389402397715713142581973498766265279601079925531063728067061007601714126997968302289591422191953141182610431862461465074971510055072260021068263864868558493550083738683040160162232757814974893640552243850071496672680702340479806306142300634937862978633872303956720348889237558054174315505858480360464833689531135491578468107806062537665462100434784580103377243959763176336351168375633249433203028577007417968343882308481240876125954448446631916033246499196563482249152960222300231553887854579693968202215476167569788048921421517209149172623078903986781099839477839180109504083277056372653512652075273001680911850998030240302481659889729299603775531859231076779796110363794408725417047236172326309015348516758754156835616673379070894099515881905286651920169635621775713364124244125384673340127255841850121077714612087795104175035829480349077231165256061383244531586930933457966004322166237232953925311191783222646950493205897561662153920279409644166532864894545324021216460893594874627603562229576674237688744757344275049146761334569401193920078921253508697636130430256036189178146262083337254045989044653985005616529716636549700730123934705341993157564383592781779882102377766793927535248189890159655828119756219384810942286178471898423629832151520915838528637904389748943811341061198877055241532138676671016884581139541673817215228428604022667623666269592602637859015869672618619104073393846610887097901221389459132897245181037292820095920974547060963232151348940233269770163425381858089923842818622959299924850147913278773308950181378260741872671497807602659244959529281294544257150984810065006316118306913980669695473995574007027342601315275609031740137368062005564748004933686550721506442740999349922371755523589903477689805720443760374488981929188459029659560519469760182030339737486037040305449984493986488875161500633458760200380890523117559709659546534031794944086540821879136594565628063228510256037898741275170423950511887634602604346514029742158384747125483969304752236897778746568991303291460148455256512381686436247736639899156770302306733038250241082331980265600400904590786585565438532975692781734127296012752291065593217423494651891650589522031019413586277596773821195454206045737675197743290745028206268775297627398807951274054633809311437915766408925010732392201602972592044320532476431351016224759762683474028347207147475823430826162831963595204188957942761245428136788907698132362392143610406853338251804516428570224993821648371115757336260603943681835153920988799755497530802270759391465398081505656259414360145839663725276126631862570581873543582795250404342263517164363005255999938619879892998095410187821788734452854194322831746955418474251871552549983717367329257508957213536234329660884559607195809831421979672965455739626662667588244686580597427255213343079820369507585847089992897746230208822951281230810434805772070141870744039071017703016164504134454098485314332115078852901182243108870827061896006668330891627169078399770178591483273137887763868753981180931423715334405526345323524944587216791886466614980355666467518136507248297723934588618929184316563353647240566545545415179687592131139480065776486412657814927992925947606636924867112703020581202239820127271531312049334763576209047760390553547420585251672514072562057592699190866948104649455894996681255710078342507075864934211449695507838113622932709012888686373161117198685208103945872127348623192670143159353220721252238098781881430059816321156747293786304731511077570054512061946568246730591356519923900564906869079454380074543816049293308026330422099771213632877115594426757304178088149237054511783114113971109034093643496653105781498641816439338125703679058582648678416641347748614555908054744837210860923390980130742894471215977855349738073466957582097705410554735884350619185574909800483885424487737626890942189258509986816625475483293582617561187963590826889591578138151283419370053488209178139744756625750824633260252218031958593184343208485229636507775273530418377110719733212594523419080115782613548351733463242768800399704944431136939946844552709553900670166319857017308147864570148422999841575205993907581049594890622344837189337757767289020532938378966541388923515517618415977922225093706793234799942134167073087329948642999889856815309084837488876504029531517240603136866955881604932839469613834270634287607187293108858190392016304969105612808698806398534477152594300569614079646257949606605351122582475203884828761206486909281751511249588725881588045737719564688098794748665946110946193676790558231079290754011724305522587729516844620902670171012269122742181236212515401100382352802875922526329018215617605474084727618574306022058758633645061533489473479091870062918955365983233550265441229103388569241144393288863964298429833357057319923918901388170248467777520624543115853108619777438429133471424579523180563808355479888223748870444581348429222805160598338507155541141951281956219614598597294946477919423520702716123655065564366592731597606483356472641961148812022933373437539067983721264831231321483167974361490304769799536639939298807456086753153605389091569157141565663003847456283530878767433772900588289621773061766884738486123592129834077359749271031178383527044770536783767596897685476504276867452101543707676280507038396368418153253383311764660251930901365843858814034980551151069138547490836645495979216763159920265722271005955556167901919129761608027400846439229243686451434503053798871383538752553816633644077634019964977080666348732574443966145146482533179360080696579007824146344704450536426551031395462424558828655405742114498852281501432421220711753069232189189998454048882261194230129875741449614849756283611188495367723382555629499697523290508778172965540486214667182611235867295725281438020154564783464808391011146059947222224711634276311194677719740503681557550862274357223031509076057105997451498218953912216102547107798308102972515279875695463747676206795879779991501894511396079139553095512827768818644976265970453467907496513521772201328325122492368467175886419989972544943818025096542315507520981970897863086201218930550644760605638063599775208332582624194311090122225090112459259752951073755303951867901824884365580855388545754981470035582094694403917413662950742416852724506030308864324782042497650514098843942552871367904450952545542810116963584787186867732060635678666771042901196428836251945572253120842877742415369118122087288095885619892332030094322922719808064523286216131788284161421053341259704705568478947799486000828201788889394495334547603903111579872675469815055546997499423439641342997018537175609725908309004932551805956985319695761868035763882821392889225028568391658751426403327594353853727068783078627864181361386099269498832793468889264755446225774475854734641049318872458940820941256551094287305734957966603224229279614609970334907056749636597819281716270261932210695261830368889902321098907818007725868790979659443982359503133387687151851294858456979451303654639534173398983531097353916233897887332959478669432916774224309737063444456715853740216615550547723653785625528263286986504830943292143595728804798014247337571676834837734254272063505981999806985513301849500749222150716647976940894002888321389250849776659311181366087228576402736399367301772810043185374467529676361013705626613847786777565057365438432902804625932694505317019165464293516079814814660963826698548468064618450442634045870540466669942968613726224229535061955948666436689310835929493793485622294432869910453841386577243222532120887579751428622512663621128882885284370986242402504541845317845184377247922609122970815659275396287896905641181823059238218392730671402812217282707722756702919883087072885486959874692307676550451921935760275423291850615936833539594315744435337258513664072726760073957355860546166932131059135428737525200007762771016758483485550537063770855484417580815778699004274346929610411385938711800347370932271242362154982794113113368441532085907518638476895527084672835854239801625016941317212740444067913163333740074420881545741245865209123184619203115889073410611587826016223249843691365183744969203226426191807356180352831634467266934176353701454351210099151588562640961276445036088408967362125676290826354627871854202008660937338505192533558341844275432773223073583970169479143209607782537600808030845603819090785973799595040559844529373374801551057593899319690621727174063492779785888020661723558661879387449552276017192546556671886291419352758367400457964774505289436999159352521200490125940300881314400849221154858479416987943333829385726878573210491378858515813314748578291948624494264808399600572725768889908778695192076014556313813774415551822022067306338344028181647624724379359895557062678711363614734346274531457043431286369177283072736577138354288339320329302464889631385658054138015284627791136200774523839073216172841622942032966671284809098862330942195260916512499579503303535547088973786094646317886591421702631202044205906134965344262248197743432472173570294001832047667861416402463250536962763739955587111491311006473038733065709575546911005365452331793547589112782844129953161829464898965012988057099852260402737037482067068858576372792296378297942531955193160917241439440611364509397252769919024410890307001668229863314273243127699806557161459261468097864182852166347689908077368663422932146873268193109423784750990728090484032779908315622886888326237766866926993483745859883566327564837609550059017546338918930947528285159379009661311424418771387367640209370276309083194481386176677132367728627196559152446878277456501141849892788866258242096773621353273767672058764173262212233011697410976517800222053241954364653851994301058118145182441969478138104303828025242060675864910466130244557955006046315259951960951118623056119888757451768299095587181978276722177428152221942305804698145290332708492336154419497439805150382650868083661143181157893288537033429530140098216474286905435684686238358730020169610900127078182190948412031360879720156449111512345653916623753648933811989372621065602511247137629178772587539393717829126189569257757321493162226984908195532967030516419676624498873781150397851594703360981816513778958322770305223597697080955108737412445107685779894342088962534813164258229036075262773205794633976343060284188984085160889984483810624376927705307878603616884567384384079710552619638384556926180117154511767687708560723286318665321600933912943478692559668373587836023296825580628544738517338875939221999046206375699693167165570512637424188719208570789263661668319986427978235266984282746832855738721878976271470443615650505270962857318440799786248811537198496294195066143693284186496707039025551165249653256303096469822630616739993743655918590096319690252492606829807054896828717744145883921754649601109502779233059331318180004632982238882434490442213746619931971284072046498571571483500585443172097768003869896341662743145404549892417031446344380274534950547051469759541915031587629274917446526002348616069548196713960799422744692020086738427850531009519782356524559021808005762663062317361399827893323814531714842114825333535142313766613006524516640594462381689689444533432602834424715122316754946467467681043266631350818067350784453079609837970033581783790184843958612343181627669989962237853988056045764385566763522525502497801459942975259303702213003410764368646074874898073844136184021392982470709006760990905301932736801905184674936826773680452437626633615826288855181031971314197391021852408643113296281355564167088900308240063344832428617076932245121634472277309519021975799288077870679884265388042520472182500520339656554966196004906014061103513003686546416995946666390229016703116514472038440832997979865656177647681475372451517841413228525137659648177837524677686739460924061309460348906783006450895089225102698396071555384844681077179709277790168458504131597460000017714997363455660109269986114265009237464079721066459659405488397702726349309253365360515019003815384872957422325532156858845450671893792379734648184409533588615646367455818317129328073700233816100350577470221843820018790157150555919565253394563991977330222957458486264003621441365433855459973807125142956917803200276341663973471005018015424597245661679733123386821407819424215994282220581838712239516472492054714407232783708051449973501518646407775022386269434964705177259595947018161421044578687886646747225865862634602859083463729681369946491868705285095609947976388085865695075114903952918442412114431558353148871607116436699935145711182000009699524538341910704291844973842638617954599006998932517280435321164035836000751037810842018673914963271218772569760931357564506129049017906639197472686729297192754281726431575595731843551270774850234335942020157841593307473836210782388136025749926540282122623332585035310479025799513318525075253677147592179223339764258767483043460123708789515686078105632445613223505783496428727537908111531341361143984878061498033533252445585287406760418615826414351771371560214124162697487709752880822741531081216017615290547608172874668634899542911459839642405994703378588540745704555677381477785289313937661424060316042868919619719884228801740601765554787075255247366571055284480790955274709959092844993886023336844397927013403502570058794159164018683823745558466054417641613957792009043454982284791683769114334691337635834693733033644992222762514960684010421394634230811455221604713922085024617926443043849880568218075610156959154507008988380593317712529873461324665866844441777353505542058337872107329353730042556918880745403451360819318895810437478186540955030529305123496363187230234459983434865592756707417130338041426822139182111972154104485871256203401022282864264588804413439764744643556034896028819768943516213257829269495942997607993769677220089617113909370166780085643275432688142300315527426432670146378828408664500096179309698977613027182362414865963465052337451486751349281305531701221276618103768439156757795972559085331526888941136055786369185991607740803134466910160132704354510302621991574409861492266824107870110015519724109802084459408690211517688648078587739851864569547248878454604405099388095353867472038886606128905053299799975460363438118419262949960058317904083313187841111857176484379514136321842659523238753610875044082575827534780181162243645881943912228126477436947062319403630374283740686730250091619673702438592979513967743364716578305744058446692898672675660579944140398500794720051246844063498108309801763516761047554815331691187699901957935291988795766805181209631884657124170587662248419638358836044709389625806849512229923514196551507294922033171822548106725580856553045343817868202653081461854222113628424653322541749959794850806345554788617494568345565158170463613297587860132956506948857117072346202922756905452689685989695372064912964948422927120909920999995513491747881669711804397232912592953833296857446301981482632200345456635197521481343054400827804606528386119391158583794834679392356173116296986191688728606144830540699924650884425362101840194750631927218735187582634760855455335878326294226871517045909203717295275718146201856408731135257734927645176862493481366527897817012059656642105456406992848328892903978744054807911244541387763000679839179202441008148487066669898666508391156327310334832668556630775828580881635340929032224573213825150857384629198454727684426016430315656404154135403107633778373309100682664247924058386096996688990105547379412947368221899096702426715681357749105238286403183689609104152563472123933057111283221579606408813415699808432482774477945912632956356390612729012972025026873231034099111292310012572520678563721703335504509564482074335491448072730737109904073855024531705770881418507597996761990923372949985303153762366403578634174651475596392303903434943777469976962682471435453603253456858271551653294982944566085617552313555774982809562741798069655139848972620188312725095895670537801474529014767134403818179233223594812572432032800480981326219179471531077846716090328238441768138998777074223858750329024378932770435601920113628962132130032005995194810632363173985090234435198398116910490349691786668157486368180105332406107945166391656524092299472824936935869316303819572271671120824950452523528481310446386969130607172696922331959496343963898400898919489789140542952967886028175420558005089944424595371648918851269815083547220546757713157049568729128218885289418917612941199014718542582575742942593158799506038412212843547177132989176615106464928246827475512524844536222080773397990779466605535716087234079974627757734337842079124560367351800282405393927898561242464035770629053647676832070898497261936478439957665905563426562166375705155039806329370409698684277700479808872256261166281963960108613232099855080054417258660712098546302507582270205106080984499979881683892591026339225653980824537373679926803764163682456295493016224996242331164608615561481721338004654913499696868683942117471407032728405576925940724751414165067715313614786147515763433072276191033903604155041906806769444817511186834436033840070541118524790380547607063936573114657276661713677199794708467318215566629724838794580434873754684055173154395322637132909851456354181404790211139830510611494480485752614004369433547059660198422563738176652455542173821367701772511589510500252553593101751730807115800138759644900762387411948513477281525172019854827610954332829179793703805005756372060557066582336383277825249914460729828448286175033246848856848987773568518056793968511648241883137120504202897560330226455475150743307145067166562216950085163134184974852109342735710941906378866125898180855298411059212627277613025468390664251988867458829356372177484157214651374408479706913783560973959080269626149346952039983102798571525657013074314844846171342001896230577288576751302284062811918412264172395278570011160389263036886989971603705295115803419509337161405941675721671435141886257019879259652220676188028074185747066305645729878849032733308821278243615527393750754149331004477460333232290499217861385897754869027719519367867200255467490403390359552266030913397513852413833296185926763798156925118013436232205389419883424741816894013076846392279181253183989121767445764506994815700464331582976694462246263860145577855031687652958729507902450498276298859415272090996277960890385625317505967173002340833997074891089121118377022653858956276654616416727155958449617876297262702934102333886989512280982714369967984072280932098801401302921524382326908434855289083419583068207864750665874753762322408929666899884161230412452465859783254655493013409822623903797746755116673210520007371928208037813560601679799475291070683897585257429781207115553746858079712479910763890055853696395238674864306122856985986727635429899971260642163239442400996034893213767365442671925924935977985974482651739190207425682807124942745531508503027600523442909489512162004596296393499068328627746263024630335293801055198620181876707728877602043802123801191370073295494145451008872942761050219770639121854077596835293917467200444720244418657754353215840498756078231138749216647500218457569189558952253764642400832892477218081421817533793344924800651529354989047998262021885534254606163827132509662897578530480543135549893499342826118424085815203215372297194898562234401194265933942794605851629513304926891549218814493102683716812715403340314863278501014329183331774150960176123460792046209905339585933795529751897889341945169095216740864667316264274218654132744481642183102316773469841755987133415527008641486028933135339150078105940897037328270140396919398342376479961438607854157930633968578899708246424202214097360142801189345564933344875223093577999187462271700688552866941012919018356860446211351734201797261930095269924024172300661825822376801340414351833727546012648618235380783798062316071603793025005955515357851711870001658682917403104558217450008519496224491120103581912235343685614044253353183423040238576055395014494465828001736886763475824308314586475199271284435312496595270930501833446929020817642497830936245866606661430528060775223338138838105677206064761426222478958282631359538979367101852950281339413894175922571647460420776430904271584139231067397016781941927333159631764706823681958326109815868397993324325245860861995759774574692359692589124360428915237696058816571471797176877299585062521361337465104004447742323266413357876870417738939809050119848818819340224592706773582166463161267632015715572709004665765687144629742914906243055321972389621096332848642971491379594766448875658424595952512194370642243847456429353712354324075543828544033238300022665533202242741008639236057091855608113277366182816144169492655183347849652324078961884785818726185708626660211192037941353416272166631173469556182075974159229796454425909556376597542946500687339583165033486428186394011324352793084260388382420128770234834732929272078678265964843832206235121805153386732832409392505867107784243530073831525750465852830417961170730480151105385221477896380245518890601495676884600312082227919919393896397078220075777733722912110966031749080214095082651397466922041664082556871798242682851892507488979656570988061459773494626524686832203742288207514083398799834100442515711360305183193888514240552159004857876686640225565463659888301872591808230617857984873841336439809620883370528520189938418446966101746448391776693322713609410729460428400026875430078883062549431755080902070009676802355672448814275317951633133723180473061874811562390467936229405223367809760029663638861272439816265551380207039581527919805152622062128411281989090248782443288646193038139550561102480037308705008573759137922925727033097979325513008041050628840690073537807520715369162420425971117409207269702510139096218319890587753283517650812633585351067916442118777127888321952773909546876427520512634714001686501622623701184979898933918220903364527507803340077670119108317102848063890462662496934435674951737526690847934360108592171802664249956179325535552093270590484404133757957525965350563960513228181692098335232571836737342203680442393368131562890204628372970213600721621818789627924369967284650072015169740053812259036725914955221068358789221505818976726066920652560241038637902633666687036145832807121304047146081472955192698719756277670208985335358548751134436782099028575826611014878004017226788475814407522868184470246176510902238652900115779106156454100151277331281284733844344944748156261208493465203169432184201918831520446964773840359718713393790579882396109780844810065835984496399094593627508711157995964027415850414955700063669090717135707053449208280129103824267680595106301042037539305345618444273191860184443427019317996488316422565693604092589855918703095167199743950993585606499145304581641486211776959221528402579046146197182627100289718030971049762361146798058945972116827522406881846499634880023912872049274155100710659951138532261548588341969668419044895332177903793499071911178444958494243923272736722386278744673041221643817226027807186027438128652780991842670404771100066899761436394002168648835623749716972702835648589773599565529325389343467388323493313532722396620999356944666087024979465193794904269740957052068969223109561499029857226722778510658291118697425428716107871227040379306561698633839287651938913677426716788946472901395383035813806675816344534974315399016519323782704108875592627834131113558032670970026338190320841255789592406803282293645900602848009102886687797466084559701195161049707513594979826666403730693688622493993167107123293437158243493666791084878510865472707422942529806999931444357864777007477525352031869915906445581030024032321785155371522059731596843381746663141818619523203553209717806486914266946117946912475684136300912937023142022276611398598661804001531398760828184676464561537532220541459260812152976950841582510410736767852191516781578849606823153663927224589719967783970245277809574558446419981633721800957611429320473340539217593424134265150447143330193566133938145663221782284601687056681717616090919022426865910815409673689097887330490977331074448472349722161508360961897482152878457712238497235363108938035802524810552829127670874283062576136265793417549172414093039517333384395621635191907682165580104900939979074664584914845651066253697788698598574099488575902041023222761591867868954687800266525107493546681268220237009954240640851904200560879359040061427293861508061351852448512347897598243821042576919850231802642809146312039929019214027354780239833939136545735460143070304710222367478655390446890703559089185678053034118778887464131173424335017090817829793724221396545399265385273823381241227728281659270674115090213582404228424112584735276566904502644803959874133479669841444718584773755519269680153613280157770797018962539480977163550582201033285921751186811838935451323189812824305094428177153408694496685667073709822316551194885630263284441774367259914901823512353497216163435007667529425005594552454493714063817467612941731096753678908007268434543516458013788653113180312841462062315041368187190240327058770390637557360219578771101408387859818245936926064695321859239543147973040269194770490392353761813136642260679758175814116651180841571043232300267942642648180628876042373206885711895017933857908391435791639475519787610128478473140638148566515752631459370943800539030502721077909381715248445605869802611058438936672757938205178866442368789634236924244386649569722812388076546334238140960184284418360581239426914041031334198949528514153874819533479848811207196310445503590634990853099418541890723128829167885933672263268919382111473184525924196843959378892849997846331744225699290159109515533083591787954762645711080349815338969995256846248800809409104526076860213740537971426875494643053395565932949561924784943520649475183693478930582235071574825828904555008282143526235492199829987463112125715918118901311819252982086055997697529113831802596599843301209443912494451990049477228790977236531799423202130799080806506648990862473965130032936519327514962809827779516769969504216041642333316500453562515684924120019017708210415342947927643316550159714093020782906619679310361811680484090705868947373030750405302422734583936731476083198885024021906596033774932313513021477799173422721252939239456843944400206313294287347703062485141712105048351224234061497166064830677401055109876833999238454089653386729237653823919023276733059079057492910884857047045019653045115872779351109064437203461887584221968503791153773466863528991719416156102502734513081556702808464873103983478089309118881794419040223997898928562609949404166092466897171352015412507921251175404069288437544689217871911782034658759518076710101849679210692251159731827115198547269194832810474005569135825297102162603308847384584357009006267644658039802119364871659591316038760859206892745388898363001066160618268585456724555069594219880622292880954159622547168426492776851289327697271964715675685108393445753573056247979632704669277239206438728534756217761130138103343698482932858939477944422535567999916070308674013387569721340529400642250677641626486393627863621868130200095929955713385557954140589994539819397953673917159537202791902772794304899756711280521466037354637245082041037201508166700779424156949054590840556360834204973762693901877696735633983593124603400545403753564052326718072277831474084905284185073315830921362920909571486963024117577946537335688084200346841885178851907113159604519763796015060196471088928360637242794934558183157981101750676943108336060152572950671388617816301707992709867857098773056704069993192079256684768794653744215654576566798414011705043465373972768237459790320265653740144409594203824870952398819931506957241599699471463780970109212541031088401993911928603150892775615313267650903355791558051718146284078747981096397438686129600488348035526962276476054469278026640487299411058235770817982843045104161451000659815161517545362629506853198402538159169153390962926812699558465569383439302486021081675258592673425018101462254348265807465837634294898176587384534228742763513496357304514741500966392974347962003519338175026647279789789491837427712993216417351092157197813483714583861176208510753241137762375486899905974953562553903162240313022009088580265249112188461318559507660917225797628108617521895394966365222814799592927513080159851496477909397960409079090037075019875450771405859890871638511273611839693021767141415486929499101372919536714835051444426935467047759652385947539250306637134332952899192859489888487152668450426266628135367793255203472349069982856975688413071098287698811221684452209142803635178245966067039816147828544358738650634646818595284222878420854145342591108524338391781729362201953142675126964617207177820962572608932117081980655132059914581049875883365431374389362860303515615059221970510444496222253870439235874488145250638755252346432341992054270101969347717296891234965395589609621265303502598648033525942917073421548289484328139633481414467099641067739361284812039316548421372278243653257043598892047584060293052207509726344386664096528133760210647872481028493251843552269977265121683504327832849825787961535984336488259273526635470916389263608090313478596284697761445788709923175478652279530166635042612856681798468139664611762314968651993897021419711041103305157085833300566481782973799924612592468858355769094033443100145865057680601267540950875059055523918022380389377463547700030496341452488353453097055424665503825343324855965007600515711217117867944241035178107773927243040327426573448562671609386494902534335697795867488619859707070971745856999185468563429762963169839196059090566367271551146820482276663359868464737057817262206655292899098191943077331944603923344579215816810914346846256065663658834032312894025509771814509080364559852906441324815844704667746386386822753564623576042612871950604791426188862359575076909325886759680349645919708524625626073798346869918517446119866100207969037158900247400732718351058384857658864454609870413120509872000014182740949431713974086783175830717100769854105634399734014080877850918496973778390496012599493176353935896747154313312531745769762596444668109160622917667696276646782946838968548882706032923288729148668526213319583020355016082418505788202527104678277155921721394839006617882536032440045946389214561359214988390587386985304237882996947603209881264037638144671934403055305779738227784478233748783090466832913338490489793727903873410940386031341964658703979997687444392524133101728669636855831470691359827255441138369846342663585028796228950870549870798715864491636182799504343442809910196154567739295099336686485641085121844383153290571089925095344463777447303357795049851012906013822640123092771719065207363260218728976585995612740487299831851597158250432843243140012103249838229185676411772090008170387284903827559207374298931695577527219042611765719249393221720086870687185527326508384066159323625801686641304484297321837371402198687747025029791043130468627160679915789489642382407752399753349306645836514614889877754105091310164038300612582792267794065719366339675207403471811075541069450417963537037444719624136711073121633324668574326443925134676078038321595810386245849649377235713327745066024972316434866826180144536453837827497671101584556024278719913748725837238052559866358496993099283261700667014666769703875398460143884727557378009471601608684064723279681726645663521175563233329864988217905522447060605363721061677335039175213407517033662406118655525019048890474581345579602426680337145263451506597143673517149785362840567130193563816014749234918537513103271362425153042087567121581739622906829921366325729171307135478392405033870217363072575030896285729805162959072867739009199646811110829271371633315656232295654170158629428142115382242123687111418262456985510686903371073025452904513952638748729769960355077006835149830396492570678197047434743424310909695831359863113023063246114610070827558098101665668998255893315940923707416648263453031644857221373099749979797710815322735857014215137156387887393665711155778910844667243708794401146407567798455550667866466340671994490328196435178143233731242193154757510017839105945172290744751271911015293708289255639044721226564406141068460566797907745359858856034242898506878030819490409146935723953089632357204987187942448238773886435276881491295428771273403059177645518389446525773055703467211176541368041255516092398420578067001088452928800666713649762573599307150693200326307459025102686495549721878264606872101747569023909783117487710815194738915790301439936898810621863195200699338225824045674169926289641643761240067189853300512305159741567676333432276497323837195377511987258869206783486982012953590572254526240100348934580530773976528531948080794538720796427484340771616345416412448710812977264224434170710495465374010402688271535774716389146119479443650007407354808067536619133150884837893759469776978246695978720634471032219386457204699571941426465097365991785338221747331256069929245110087111980073097087485028872353160191138093628383968840798339839318115865886042630964697889083474295569635103023680143843527890127268936643477374829698395196635164386407984237546468750033928876858520877776256675162434768970578995843143068593427429451653859914083658478971516812341623548713273718095642862305276434714489347960494401243088666106403612901704727389530350161816137726829975393747787316847168779372409397910472484123078562110165497243428888844286020462633335125355114935712436255947953665557262567600763462456018401025198149928361607174748803255991669245991726865638876611519193110799659566090765900919049079896673084860281983109249672086157906173377075609663388208175481124286056901244538118586232517993993030568395013244772224574262998314378295084076452953244172335676417502935738586087072740056022362142988371081606897894284167300703191838929337514942266999806285666001228862923350706151007715265252723441120364119227889431308303554225439130624539768810307503330209904941156272966590865007671549274534815994075071981848069700830247303623064885579210274070491968908334223872725853135743591245250701424157192790247330276411715271781657568518175186385586722508840621368864951281736171380933979709592518122192721284176190046808670322993475921654130281351099675782018782429583544697240018911477566889408261245067432389312945839411533697161180262411892122278380631674790208628969949354793644290924405230195277288172583278694855471802401471454972358758494529780977378773837344140553992761449606310928238113163321311751219184482748059512636641199563738620467000073146254773206006598678008011887340197145463869350522123147291961005429748184036712525644488190503149109248455620505022159299877759502824160934015415690714937230496515477580001239260142708137057841365825926456932843175707545793287410526264841670477323598142570073020578462332307368839605835834566729845370863006004052506672868562072815827001726204935379307846095170095496018802706306598445446127041808502692651954889599022271682744615800026990038132108694904166899020547134941259760390057530334788017359625479942378416273892352159046814687673068707048875888344217690883945393017927254437026536352800371074342876372132698836898337994716797330444125306579551531106507026386399643497421680442466379747697505469577050235185275464717225448598761642238366233468280350653286320466708445268274832184475401463640243194869730679925119377624737070262291092448400332834821999434670404799953016495497320119618638667582500797709475744766493488112175403885396329808906923530445658126442598226924275437534706515561493047276882621459111102715467223911382552635425173573188559261052512849277299012019520265595110370798424211298981345552612670590384096972143585046493198626465981207517708572551866462425861772708974103034506237114420894242279499185650156518836861675300827625070909505032441491432986715193037206006683750912206389154875096363843519100010663014400639843491551337092847912249392772670782211329918441132659117019887685900718899137553175628250329572416127839170142951873737817414022722387697480880365943870586416389369593950783829782717296330153551866121128633615005718650145224272004649473874039772371352455727818650526767013940322115647924789078520429169317893741575844724041469687812155360108438998433422956782521273416670478031210393632380894148362586046741061304678766093808364080913138485614611148901341763105532573019414003317457903599356106450223524571720778124522255765897114122238424487351390503360205133144801020012889684172618405936373140317421443278378774695123546706536103299769436998004370023395889661017091129292292775361868769593177368418961594415100522327550552537717982672284630597183784642551541198829518184100536333574879841076511536387875238581701332712718303862508715695617749714585966696478609260372460005764038662871052342637993171010992298634099656419784842371422934376731178861655915373341267657047077188622439702141236531017193291665217329821787770903132232614722218619384982732294626113191416496844518229512437840590587841695101471038834399314414148491608999196751631350427682174235814693579573321033476310005948817227975422463629554432512551718222261871095541246482732351704130494545521881231840096905350348250532596027307916982645144893531014808938335243501329138541031801816680008760649018675454366309139864822563697837556360727755079543759079359735562391105832251131936600987680995204847636614448637113793664096398131576284301440659328671316624302614095257567946325397006180023897442440831377864376213144016850826794327063171092682480536219009080638701799213634827525133745333899481303826230855326376035847240227136142648056589564349059376141450073988424232218846191294218615032564511656551852812957529025362110655008873708968284028706324764098222440246951513975823003264386432228648214237152329371295414666064856602703300502319283124207061596514275844553814499716844276962884959885933381535346480622006841566418593780038244926973066029235163392759659015919037539291481798915452797764284228920046212675638651908868061765937691717540862372048944840084863459697714711580474708622892775678003661758922367397126605551556282579079080843482187174045270046962780928275781591379368853445825602298801434687483902679936693569717844616355940116702525238209199546386043270628138765036701900576085024254786594332070988045637892058616766344566880391750720843616158623479380958584724085162922275327338663720114567064529373710044462422501547976391940373801390959905912686700633746110193209756091691036239928488549816750004475571758888790718334361088119306242193429383955079606884440668163558941162827646084247525058183357570499817613955981579142179485953391267620401433761410701464910645053136637311941644630142415376794405825118655552728395321005930081366325397582829746948906929949911676568956735250850975802347969676821506605507489693952580541164989059818124161518549358432997742432050796408593068882162588784136512708833353611586641787511959653771470480689233471233534891054962738340944676839762995383792677204289089197256585123332378458386015435404092501157800752167892229763733161013034204250022741277207217556290813489596558756522929418303285841167498851780597656260445722756588375353230906675463511165018033365250104356511409415579055612284254492749267986948771616494057299921308524227258171524390713728178302747130225281202419320024898959416135388767544828260495652960974483700781254938008656742087329127385043310424215141763972874395355920591293443369308616033931635364675754059677863482432280569726139349406602114367633056853090145150826941487444275961988656200751705741094416066395145504944845221162898255646674585722464652919973992531059119654871294594476054211998129982410129644792653855162601425255446508103213749370917351559362637323815785141320664108811901243703236575756063846108026385498441130477845320562835961884229993023679597997511905251633699574006666174730776333037901033456642711494239975442532974973054574568648831211810980911973539964599987290288779265263985875969651153533635123697683729884787307171447494702864132118770820510978822683889450669479610742340626985371173945906789429649561681682730263133706129906343479061116062627525517993387631349163919905976367504084081161139488896666809769679533831707261326379728218737190040414685034924160170594918137924322130167311191614770014538335154540748562980678401443502964243193827088556671969306728837023900491739969393866387732514802156224250907375196736932687055943610322552030474795263062973079319030100788558067468566710527531412497481522043549017092143611323746711173251647379652321589364230698078549691413307567935767539975483002500739243006992102843615004691559372988939778126369864214991640634435306332996645150568964103515614559091864162677170125186263184753219631209935417530400649712108460440530751517710320565334202936003482055195697575031145942106802600559008999603658665490526477851942970766304923969691036344686887028886085135471414680338804516987753276785084570425574000887796528701419980438449979267072344964663189380551851954911889784101068681480173618469289302365053454512872091005792550903276782616033745173627407829919189811687575984964166738949737106263717690832932717635057337811563269109903270813445635733489538656757628782454482182421793671283120874416858555107591068202130833732020956317608911195331306282310512726119524870467309137937926720924816009031939969350528633152660161827377149754938942362527681047461058310327019664497698545698369754422732124349735853552494817841304931811839976442593616715828022429066449766987309602470243479922050767791288459950120198029507593532314853864111260495931495216209558059131383306838257713341402529408014448926905120564080015503360309758621231827375661894007161092357357099566145534087780537743822530451993051648525615374752256475117990257337660431690694473833929064540996382734357322431473585007952562507689764314120666028812294584798801654965826284093863927967757429045534183159159490968526527523574609241903812325356666241025158102413530515583073777599235703446494544956761378677114468490341091714251265301716118621678782752947017459773918395219663995146951164573188746193559317468926923207731032378487182641377923249344234950558298310219574332012668294195988407276344161247569163604009747629731632669206669776340676138876133613568427327708783199047852007334920733549249884301411017904868298868853124318358958624850572056909564190322481977737400959895220011016489718875169209686216547227506590588386770660281350574898111092636872697924579346887837647197506580221368507662739838894571711130738680191638946854350827098652864772052559141253482729375878321582343463357278509302444659053790352296393343955316462697686475781416427867235672900133328500708800901538242780217490927815118970720539015626472297645296213699777038608754123841593675246950363584049835520272744559571338913174836616559318154736872066414537102679226053732608412534143490368900840687048300222182808741685923104909886509105384909230350073371635908051876883842302322580564195954324792176234337641233058610072614321634408488307826589155713752582217830759095314464285338455692334956111320241374462486445667803139322825447108675417577984504083667081062821459455361784991515861354550115029668126461348936675950275854709630178270207622543690833419806391512317978319298547916023776464866624154788621004188466247800316276659823534816407710108216028189902542023105893639514634545861909740980232728814136558847438612892861092842291350969458579326833658649975441777600181356757224255501037106374566550535000599101909258801952877428630350118168977119439255497125399130843265027648227951426349299423134306220917138438482175499786383733718878465527726465941246818575265287577177780476371024735302501421030253409973316399188310016936984176023478625411360971415171620812030075788292165504540265124142128926893606584901197746789948397111889517657103343360614969620090190423641834535218095751756703981033366496143653145604565823966304720708640140494737456670564411883630894766109534757049447199629228006204307674726603749578102604717998370311805688537204140783547346811544181635896085811193084034668818819411341120697640741712351170222191308264702220417279732837402338001343546998418826959236379780524215716466186194737416006885612190281567709211785221976762266604888052368940522805324743308230595724485106014322658536587718134025001577180122072267332484617260945603995017920557184702866960904034741659363963719098856845056174154273993702623791280692965223686519176435992424496470937789848944956135901129693107300311665955539377162533719653432451198567988010639115077282581374369545042366550142008972485202598991445698460099772813766545524450572948009374239583706042677545895015965285907964924774012430782248327568004921280778577601688329706337069223608079921520368835185945012262874184045652922843440469149465581552400576672018023607941739417634569122790972010710504722193630845567184478382059154036731685191570202515912103198229484518346221455462990316351686135451019986842926841770270106915959279451347845499039622703239602801538701252623170307785844079025779159463958167436459343353289524134499848499411218187091534251376113444679656675237742501516165943296697289093561060382561200728642798445271092313237366339450980922192011351045354502861255626034779911569662655717686561762103994317402322212740659375141690032638325318797329933833664307791071138864527837655222409416689970746350334678598493907840615105363393508144864553922208849065826713837406786448647767772710520186543008493324780070977267279978875169696919547705878349480809997697907926648771695053871882461844315727777597785487504527125006042311511802210663946286576443512692391543532582825916488601495774436341926920360643465107893263531843545915022071623071464297205954832015504855406446904830972058200992458326840152540892444254480201350750025350730141671486359243153633440705787269723881850905603969930191834524025290377240247508820191952366283653491534857873309507300274554558918653847115621031175216514265781177523185310394176609922057816506098421424133309970999454056430266722530508083688169370391344332322863988258230055101564768720459131081525320012108673622915466672466027980216061333106516921768145373483973480256803174874267119568266998210700369291141929647525447953491997599385640690949003401025987251244476252709210593523617458154215516391784241192100765369934465164192611646879857345774195113298162316696665058447013114845265099108116721677429990828014604753732858661794308966561336553198663545061863962004523908361301362412412749772554520418994542035171998662593427394937685229808420722656417075521598186715434866929062559950320196051985404169271679045338794294139052123322114795495633536875287049618775832519093765651564534876331911292193423138801852349974204931052193818656257534753311911691604002805486436510488926659035846440401358391463703788842775697941750166442446686008204043339759695432507845347667313182635595802023513402323565328629838962575540489632504444122849894352279167952903189119126587704326788125226062188906458383403993514713704625115634934568326138308647631844549926033951035645063345268585206668298071493264060812718787538689521790693484132409039192178876125185286574369988475136684901256439670810483886550045056398341219774951010893957517934020697955976020973292091592781745188351009904487384360837548184512590954938950569960278105740529336022746455503152438355931356353165275923888866322575901572745393482898420712328048392367574509889587016584446324072714403661665273298619507528052592763079629331247963599091231431605144083212991479832215316695464392310244651599374842312312147655316326152452261717521990459383220682973382956225083129922645047975676614227057800195257511066318623119160885178321517510035500865568317385513899676229370739025081549844512852325330580848688803765640955796984932107845357535528236212015067786493854580565323844506531368600271666420916205739693830113496244621684083068496345090163473326477818593169758057575513490756650478248602420598378060382029618910206844989224871561077575449871442524440378004910461217113916897368857938869571876702176632223120903659461795089427469537069921027933247943360509728793404566171682660497151910029410181471764704467763460809014486456017795029971278033915009304391078073222404769835870291418690864808719754127271279728358035423384138863881782539949188438733991405389997018017218265743389806877198526909516979301137802181149063466767408047758365978749308102105151132510663726636987907417584244364759696621618895561161592989012503251566037475265387849271143562806190740780076102221518455854753791958108390854969075854139698213021001468423338244624983287346002106625372415488216838102119475366824270680333771227927510172045470461249693218030224561714250138105570335204552976948736832364310562844037166587778571516492311794586489302340164224918442661583761047511422103503228912942446513828488986139678569626566342601978938765699488394399195390062683229651167635831254308464962504918935425060584689244155769030121122604471127486708314236707535082103447274555764469468519371365361817078784761367912437286210692455545252177430807917489863401100873523851060235770935075816030983893193858749521039561482385827751540318256401469493222301651455373267516853279054684264605193125315586179547722030668072480525100062265623450092743447687278727406043891846165253630148271517455966369083812782231860515803776500467405923592486833689469393920971424401680174658416762045090864782610574612920075863425366436430719587160166816955904856052448254193689916597829522476393536335170648253288326741811390724295007033712708333892898876105914446116192355346525974341367673070643701268066118811076686389218924680478231795946007477642105948023891958077132066744073035633998960834934953849190713247169372232011462269404196722737789851892826270827103404200263605965854571166323959339538399869357806536249684445515052896514816645352946408834320430169167399309859731614503130298121434180970730315329441451734598531940194501921760706657497899253637749136069897082971373978313842546157529209888543418510431441657354811408964664956158485880039905016676234206843191584006690625081848223044916829846566795425114859267507608256182621546039241266939137023525729347559981068136042637287203520000778445220884987277613548019332614352949459298813638027505545077652573980861227439155933559250880619089725690581775651522067266669064253619765985155072506793331773815476221578966918862753444753670216245015959773443443543721666373021420827529747670071489909739208836278934460667448338767792640422070994175692804652386511267502725029341183683171264908932440555503688814747259305012706975789290602677471182475872271661485568011600527159401916094845263468427084192712520993883972360271861097496992236126885510075772285432051663971907666414102195355498527858288567159088285753467669714885835329705676582809119339632003205556298357011108488501046720617044677773033448986264428244221948460757951330168158160240426110061396265975276746993123644417591411716537918902508109251851637900635285490281289471016345018004548715982686792596557311441543747398292407490151502329851685113629966730757238714032625747021933021056171540804532525315904965386756135369075320582216826306641185221847742712094315226873681322092668057402681555836870731319393109302562737160156962518866633936194188996818993678408987229123870755216528487216291121557790066293304436443593315928161962599105663285804440598326880393743802590675225093980942163805354243268160203496917760784067171619114993444040554764515502912166614912298385508405540200804063195702859819470220044220627104320197177379920769877987608378881655669515434794489709029434997122291926856751239539480597594748139922985514559421171170283842107985670404781417146993510818612733501601692333030043668035535474857237213881342117860277021840171092128366260736780293060673870876714895060315502340969212471407684557821045171068123588131830893786237300945092597666694679665945357962593667823245679023365012996010190675685302664943978028021698578955800319913549902628108741717472585316458646782109103344166710664693634794425788518878967014444625738230058130149308224579924286437570618020534376530202963937188122485734888035727383371304103917524748317037404386223260989772648350010273267237258177977055109640027830486963906941126306886907698897652239042062306848018153552318044938146810827506967929012536108501290263373285126980498601973916361589627899469219438857155376107786292077146158359045005225400963294183026653623269564702664440954481478315932187705020271946245580077275696280661060327128355178192854362654130208929220219860605297766894228322828701388735441642815070653177176087108221991074630762097172958504576232081605981305580420737535299712423232254636958875040361110621077306690243999476184375569941231484340789525658638853642517185920702866491750619886477808892485583158874498287287895892452959854560329735673961177015583833793542621969458474735879197083218668141342339238905454839273302444548275131564925140629461714305461652475162093101561018875194880292248207830531255888364691826370616348103845015664052535661973556514182690623045089047109189679692196324317312670368135984434798387787297482046471012347798825290288303256053015392426860976791503199905386248514645248338016575479847526707034908667473839751019275855497715998522041721911989499565523745300221764203945855895567218181446456776960002286704451296153868943857908092314083989161592309014519830747287068908680334247971481231707890927166725078948166203025915539313237530716739336563049910257687007779098158355217645794312458805883117418333865335160789470892489895480543019102161132242876319428332840982992966363508612941510570199218290158606383089210368172255426657602412702062884486173324635796749767900362604040514711038038082862708395407705671916282508343951771491673739746353671584499826296488207429299097455472555110715691189126542294439470588414404389892973907004603153532765033942698350226015815449568606180452199717893099288803600905413415268419997784501074612113848055844267896644470488747538665959507609139293155795165899061930605960731993159658532701175343885330776687349834486493543957539863496274025933490944226981448388562859066321141281074773948100719387304630667457388955011930337541522380512675073718790572513638293722915010329467563273016321941387894505691386779671882337345123993468151841366488489725306525419809714434566077698792739425060121967511993351811513013430327981164740951716978237456352190642921725324364454028892455127154978290946323892863788142844105928571915696410659446913448100583050092615872889289400553957283167350148334175370794701587110828129797894057768979777279371954345397385276988802688408512129942979187435050257454052599304670604830580344041827967806337372414547836500172245712123516707282046190135956891651338953576010154461084195735846160000332808650506664969986148741366857055622937770147779556152731154013865630339475321758973881827302912523260015393073043255398608908384323585795101513715744797522043080114979045957550572148094877999954157445768782315791564973483263405670678957462937608557143564554674264379453355794058372126947374431117539781880740717859318585794715510490369376725667151346926232036319132493762325018513099248313088851635411453528296766492630662622230581022444324371432370067091916057720341514574310181208182946361634143718036939482111538371941895857920653201370998343720263744630656670236194086382287008183606526738816182941875583928308741938264431883577595175419239768938299643201292691276170294469258798185189146857741488083005866247528771677331756246491495512738021577900832380042072558394901904924206550709321535526277039066975899424266041897776854743271813548359489243513786201250295294653301449429205622145050184086431949056658973463221133620802029506236970912522083995811577965182157677264023466296957388548879418136314536784135869634731080324522258259159936849067785137191378381832118708534289333220013237792658501125744447862605396202654696331857072477732083879626648163279331098735929641101248440368521903147093542289596246955649134177380978790647613325885993006312182951088470768309691694295513579135944247754643349203361461327972607323374181644626425733258445545587323079262872137606787246310091324357994925414657889657974222448572252430830005417430832692679304831933048213370853365023367168309326342197919685557282633963410082730945482442958938140860868998920503257848127529350673403326751913734382060337614374260392315667811981820040673079195130696875897799359264836282954375843951308771233778506323722480532250002654220507105152059217445058349562394295318196348817546850785853228689682024035125835984964673116245625501502257881623062142320308513943376556575030097641321224561859245600007614962771407727649267499877807756134399956649158752329119602620427544874001864290125395128527547289505327943001458495256614710479305525435628952856352116639702919843126371330272631165821354277449064330790695962001770614140187794416435823282493187939190000866840902955204572230498232998995277182216160409486495005752785522549819824742647326774678546608400542623214796771495182895270071632659803311543904540235087264811985138338584374067485656033859614361628306812865075543317426595006516392325830931945367106662193482408137246480541183708099866594361037825175044713449805656379555690465833894317181077332339850183578913000164917070772809601606647102600934285391444985128676697842755744495168345871573424273115358298393740404802820313022560531914298434910589266416814829671170560271664885587614027690402122195440240677595807275461217357569420319238109279841330753585239283042344137315165000666377164017034858494753609525717870443166459289438756032637915017619514846474639371273490865700897922549062809648696185697400635243324831510306821211198067971343365499867900154190232652253370512627749093898536775978250171925527183602382317016160556478997574293462103600797866092684410519816221203376750812867302058661495984431846622516740377914590875956083484177820753015342610670673707480494781376393767049946384109456564450371248353811631460100451142250500611199976132977226166288018464970772920475238107044528179681308600433111186828028904463341335839963903213951522782781777871554554290174480117213784375215119085161613825082025256499629732358122698431576777184593593949982903788242436400086363328664925465414097047583047068963015392131730935011085996814502601474709374131599097464338057112761881974283973993153204088378129869340562811765493284321684291824322084967071613019372832376155898318182394703172807166553631703159109903549132221100533841904096791578460704572737396786766641220362313876290351025286923783223362566023921705228712677878385675662476012679272838638543790755175638320181388575764722919965018480452098457152881900788612387531081958442937259897744395665650489194490628589409533199101919741607164232695093057084925037493344998908328511861873439788018988380016166312404708803519843712395995195314098820678666568759682389888130003010260539503255524493169930631127429855063340741782504279175889154235201526789530414028353748285438589235090517354362015860581751056136370665506177496237232393315845917997307078107553710219165815438421241934485420961338553947083759553712105885335473103187942450966792844546156913150076038316600417833639108295659361097588888148120377311728467073469913590471759823831194005253947031823460548827349720957405294161659821693534146607942256205034754160399064865750214104739100721855788851977337025657600741979217662179420778282488411880325414867831087955677219787841442257838142519579094684527290157248072827315621544680682806557619393024746715083751190074923444089934212809399235985851176906181714491676534469711326408296470390400547786992361465026003527104297963825205009757287505922937578733848602265006567170484745581638258807703089316765326706850275785488859795718125101923503284370486457410615953082945729075949604953930389303791067338012035466110668898521994722036645421516839145832623523587120666427571800610272636926816056010061180703064271849986626809351138935843995806904112019943547403060616049386085942432492098536666161388820540136802526946499816804086775586500881372051194945577108837217607131474010691519011721258420343881423784410411549890432000118121300946434107738592982566762668138637574656650926389185168369668021266548455201666966972490065019604171219745144024807923473755303108916313745950415732949329683739802860231797479899298411308165417025403369843867119537081147508347952760489864787404374030387071957739712649272281179677239397756972214832021959432938952589863786561673272051634738769442968306603094518227822449387575255797314940258050364987344254043485334213955216745014859645352721886287302297231142344920477292136087761619481546654342423985629277258479443162434284784717720733317499866803345936297064849745712518471057909071415744061439860940902967970162849879558491441809411136701368792971598244380959582874973021897998067431785178720729298207017790929280830160955198054949566251511122092461741193690371873755417878476476512369076773098781021249662008780815941943533523337755321072082897776009213594090693474113698180535541676969525739352876006980732517865372695465799276377574785648174277008947524085260317653373218224120006898321669539457710602416495373747943807400590452439297775986770397720121804754722645745710656315811737391105453845658069734819583541439819926788097947790769434394829248426959223371822731999394456773027812481445525290184743217819681785870683576874119765165840971082187940602779571523757666141824536483203639002745268854672318198516734989111785234515254178013011147823700487119527098306068760557019025045843849170843509584758595653298419882706093786700883728742654835259811987202203444880910048248358546559759955091903928867895892498373672676042001143753582591542277478330385069064102167291234810856545507377895153993551114567274119269698606564652514289824112417491992189031901288552559239701308336911364672356746962390094722569535212025814429878404273571434739241433019289059543680965428454363789468476358874452611379435646366820917406405285998100919077626512901906648367292636268066161914267484644639714493680553437834442550519427888896597107450982299393140292141996129957270325526036905959029627690925331166933131474706994455474756846986971750087346132741951486976107084406248404230571666484532055797689242526348080263576950726376717383553533681488358542311891556830487780833586689514884833886822633894821944181958129284246235826893955719611290965156112696778255005383739640213968096005829541085690655566348381324843850350871265214176740913928094776191898578506284766295323771299122559264722421879840837495539655297319383970596547358488844975692580344721852675419182160645794539116717484419129840314500142091508408517434887075936289821948989118921285168400853719430754302242606639310088274511496086739892575559890517567839932323712253691913187217152345201417585397477315348706614757748253315458678726082656809395389887980408352972628904089293936891365974242771379565868508488621396578820129705800167929154580222289536549662454768513850047843391782426349318480671980595299550049090589652338739685522826295479052230199917282019769223416091049793716139144766947633839491175826274752757478627218958036225064852905354656517541083776692323414976014920947525501512066452152939686069796699091287991169650852244449532004620850538082006438933387877238054461922607896468500342336167585482205150683500002178643409055248064406209475589858407662209029938453945397923842740189741533838508156575851301451876436758613782720777020863663285741410247762141053937816265714059473673486050420587382703255581097453988145247358382155537853651021495827562430045839361949900749552934217007539149181753201886379598074051549824699965900855441652964285290075876165011893649821059193199310281156304345904465468121582159734337532225657684971034547756161156026078211277991567424398679232722097136755456842482723261638612120295775884971483715211562851812027770385264294858968616280112688168153267260195119651770800106228847772976407836194890242965930973302226124193996895807355689031970146284608954452303713805176540813865233131380810979390392813508063875339577919335950595176002193554844792072568489917155645585340003975975988945616861541410143917925600013599940100073142210714863177915265760497869735650895150007161949827328266897546256020292425065468379798988435747746244874463096407206130079593971621474811042923151169180763880372166417395914313088901384557330875211805632159471789451916927665455355989300701924844236117920509027987694905529019590494151614197108287040083876526583851566116047692403596702579868901226673696337133340809225566110778899916414389186872657766536444484027424863047382465848078347088104235143559287561801821543212825271204733972588596824995752541633461138068685774855562400352926721542600914341735088637146210911739609792594809438517358187852935336182215397469809159173176452715674878381631639455620895059818247252653849704112489827732378755129518861736309947884780600719924116209258690818629034730478345546335362391204724942262821985377598002172279318134686757090188064273460347459836305562945164100763394667160268367619774384453424353081176264377915773530003039765640345005276972152806605847022198851405877365273041734532263530065811628117263901417610090871192357653514141032467128327290674076494729047783800851953797870308920884926949071602156291537974946883072095001240998912761017038515228319064984508178161604023773943004668156137626000970082834880489907117187505501867535205262183575729079308953751531936629463548307828224047731550329339440257397494859733675260112855483051755849693596274561165202358241051799369378951005873824634669083900079691454582905830160750675816563671581324223318159562510865500285528783334491119047552682010704957999686035788580599240581787631185277760464770500649508405374549615782993164545507913231398759063433039673983684670023142179874336016341392876388581986737067359600076651455310052023512374615922367476244329595427443179907547969736510808612451096242852327967479906061644026425224114253159321628848413994150993998328856872354486199842399822591891371540415960461853609891376543672845986745648261740491852870465809088371010063416785103617837738797765792204985443888826390992404459897317250107843963825553618443761498922009037699370425132371954225915412763808889833647048337167816318093994763026013962701075803672781433376691311921335888982377833028854944465356800020055673463818942697707691560902142654225707019379525900376943359011348475451062560259925933108702819519057937930566055756272123141490257055761114520080477385699428945698189989195462454080106274678982788562494083193660361454382855324003228235353278096257666839157282130334872111669991425830217259722798680112547679172808386366626375012057889962607272808003174680074370791751601263732938532226268855023463709478366991818767536829276481064070952548456635151066954926141440459415368800788224398433803665724540850955530224012799109666009055190293126748275572495630303068423252039904468538681202472884302140307073969795602869726687072792137877348203288950558289227522092906621143003510303399757681434333552749413713144562811882397830625333426908572041418330053290582885949928204522218844927754856137355481178399610880791451702146262998407970129539331800713903636758243762860305870674584805492740071399010197159926342532517409445157105028059644849544451702694430125545137311677184630593309800829853230971520095957162839234744776548066956807108137713723511416396550464214112995468179996457370531860488748836005181470128306100929116724843704319300140313503896596761293488794439538872288443885182544749824694677946715770432489151404317042722458052461802529797787986569328205402010699466968220999192970389365830874386060482324609237010051442252686768649363713912849575605827744426750890519492765867170617273004242641844536660163630776831076820324298457283448680222901849026713704123040249147844225474642259339261242467550327315560854215793726608712144640402674419965580002158076848372811555170838482897010834926687932399198656821490017418883814386222423670078140741189809392606592538113594092325326448881324157135040947008441519637701104769162367230411618077969208209034584883831637939331406970643727485458391951833269998823918492696229709100658663239713511817002448930288949140701114366878567304353790872351649619656686329077620154508236051334786570666976553948241635352852141756024365842939840908308311610058705104848667770472004537180060362696347331628798410585028562530943094998853751136481537865396925756700214001364166456174600992375118166314248717077516721577832391329127767782829546601060962609803346024159546692137135496320489048100653964226410292102221748399882323771540956619610848226930904167442232994847437052282292844899487904223783896676346844670142197115060443383694428495753310000622792515084008979308971047277197389524764396017023081926310296802784455341519590886194675723926240861159275905780982936870161282379083680686342279291711989989447686277537909030435039841798316506480883812785847381370006513023416293902939153629369360816694540209835732859247976811127093615901165192877882550844444785107267009758422148119465348324144254462121835589587717723828274634403205458586140999631703715513994294319687276025127413516293576216638571796978454611341794116466089819599517819912832293889768835907872581071948307925251241244595193506912829420774762427585161310781341019786011877076803291681635909818003173589406625479606912107806596061598245617543680839607029822288539792646618491973750477031405953040453832605376846553910045341431768634880304057350542544878055551828000027157400439539999159752753655395111848490616186179144475069966323275274745320818486874213572163279888090346777364982858553499625465366162320660315013213808575329745875177660953309004330140460318657243182299901503581451129125443321600761983593515424225301205206123989022962947273253415240864134602098323308772912811719374228683500009719656028296319266480188927624044279661034329963249532648502433436165464654284223646127047493633327705264397257862893807435306887945877810911552534818138750420211951427747185575059301852020825586325724558820816637849572288319678611826994961511785953275346272439757728564711882135148982006463303372698385895262693644242527049096716074250033980856857906731963984949209047816187816280330018169696439209866663068328582237333357533953205461695699131406404358191235736330716172436763373845951449495192490035770430051974537003163473510184908712688116318409353522769337891690892879621731550184481177731303933099127749660926609284919885848516870903581605299973966602271336101707764197757179793984000642044236634749495354559077898637869936467609337609114045855737825261560839595768490394181141665266678368528734374270974775977902567266484341813398442111326286209043525046833872874866906933172161643772129790113420783861831697890783311492833258116532155304448461643874456898015885651526432410287353205699492140812069081493620857939622543374169991482991209826244418781509345887565436018169971178047516590626034709390870199622455788832402545714952327174974370996305582361760352437102612568920745227723643547816814508131116368001676403186029104259020411377991430663150964043650972763540376690409888069622886756491488824947033089022415158772373648535078237887830859466996797345295682126326818674817823598047184721319411092033852118385474462538951640140082372201814802154940056193498117164415953148553092627177428366368668446186386284993342366684485333917166285134125223647658786323592296720649408377739302225755145072369053639885131429664131290352812228245455182482671990863752447487881223289117509644443857983111602420027730667851413679349101639050565954012965229275818005606885389402735738128280291250897569982793328086714459947632092057516074188965102075221248164283516165323113713159108720069339741862586612129985623362418994353896196866508317157093928144888823890386232952545600293930726616841870151222743955977770860926004595468824741835449736675503878013917048328239703999503107635445819537599958864168949397623368132945290588632497078660743080048750462394357260169419649572756765352239473413227344480104329263127549766769283010267973592892413482752291548710661536334499495321490338728393847636698600433235179532669670317550164206739400624267568939059117546066025723158384369509298449222375200020054828880136935328093252756532441141272621235477270129109083684049986256439853585503998562978454507479917871427604273726566999938378913018387835277121807980809541537772990319910813800997293577878403941885812597699762309715640047153222982467632613451637243643856125087802641300228849270847849780931923084103420454078631544658918140134941424529327333288595679580870596355213105637407428610295924916541334419220005758423820470603683614384685020025368922638013415560862087296385998115752535294572203190488590279095596631953468380744261536398101054471449326579448921298861492700608609622018540060702977706529209615340382919424455337700306287114146197279137423430183289040246012209555039054699898430217794521711742148944235769996068690263540603802534128838985830238415102050701998854593856960977569679073692834227169190781476405768129893816055361249999029933115915379840707707995492772279356317519923448825110240781807673447857682942565712292316732328187075865173217925832319862900593366548610855885673037571425415867616090185741443146442874698180859834892714831110280253257651014189406556034637201093188477008103230122714734223955351503313173747399970348121609338170350288396454564828881001925318803671211440941615875222103993594577591119935082736179235057920586749572581824322989000466510787195040097239570176454664184335812574533986896680849302386783840096201754096683389362414079175744598144916167689262529508612226246602482337868838258232542957433775390825664490686091730895892421975448369017878616790717982807336408018786304169112426559881911009175612438355784008222101221084956341094394761895326765057248677420387110087948393821762941532145444300023158045909163927292361765313307244824727625475422795443472757933854819378868993814286148908389701649796659327550148706069246037615208978263256933313469663501626457400996311452099794561044773933384063737919812712688383237498965746103028215127773668889902343638916781002380665538909522890278508442667342082691424360808998546394245461439203529579685967318889079532660484659106979665106200992097234573293644561974681320996053240982429053747647326236375687796127991196001575128412939960208766088490070747023679805362291660299247050830420097352173432109941356389046124838786914218855503522891109701006145762745183541884687023626429468776220188140830902347611932932775220328729705851611787662633845679084808127134752307256076605426882595637964390444600223903955580649846663099972143624419040470172925064507694204785894945344630054644956956149446104065355458124047022859799453750517868937238900151817445645045440269920321442336182550459897709737762791527799906231084504244929348681548337660190199113065003529225112616291576083826598737628427146186752743955262926872647989680058441666050881488258511066391198516421112451821474297472716825588120129297331777651955749950532775571383274217886751198065921563579042699572482530326773883183557452428461946587356065572235116223653316246083725335179710512274562385208935110643586805215114710406385080416470937064610939344232026812453474137912567733239868581810526737952705582649487180734095010499842265704193330570139113627997906978695871510580975896491998862284786875126331859172746467146206120296897330120264579924974721955822471212599540461026198906980008550485021914461853617669027667158386585008301145229474166633286475192021270725185011510538421071007327293125862543861564591125295890385441760762320272730713298122987641816703311735222933476496340327409234724976699327160073745582422930649541149160121522839176151061562299537242293688158241425300755402895830085339310267281735862335200691994746659389924798817308629654731737180917090713567105053589262933836301215846187692886670470724092621595767637322762148276189009749108324423155426282633520006309008982142424370976620580299140220723850584493157485651799939072619518658519475919314763275492908770899549707739165250333890383411945501074195354876072881015505303054189454595698482758678243214164013577722847689608954900243437744650706396762664720014559435214653793302129993010420533454481287561149241091738680567250556377789056509753357555603664186878873888732889359262539226876347064781806268969464248195094197486496146800267635501274195251701915524877721992288244518771117644805599783141748202917338592367233473091401384399138409407391166008198199128909709413038991420918046269281251367505126903532273613712175316385474829230054886152004772150270530311178850813460518134946661010044370639864997549428095911392680025022465327780044816973341844654995067452392399959667755910900516957738334249778521825338596366376597246113629986470377731941905279635383601274313593390099173224650316110864566318217899133827869365141207645693463333556561925077944504823665826199460672060489426051292761467931696574915014950529671985076528384756216326278102762631915869407245401698701631763341749798948243095782469983058408487630593494908783982395220517508923601488625834883715389062103306086338684492732500281738837491076289867587415816104895249761735964696775601720043334439547470571702978582529988134285741416438492196248511684973007374393986347846518924295478882835415911038587875133882753890394704105230071881133943017906016696904519305891865278900613473538883477612031064694788516427679872620964663289661746448936404937249307766629095604409138474982882415013528656860754106535094255256204997053911512132833261862305775947821101225311734682406419984947490214523440459596071925046816445591305372155837613932472540527595673201345337529680764408969270623791854564759214733445755148661301898445506142197236543335811394966434787765305575939052610125386650231795050029160094010681366063512657271725826823987457780777437991966468325367850821222964602446779668336685882882030232813975373676234623635606571550929806812543470779185670227429290959489239196896704901865852402629847781167343493421232199717444464775824140584632048947423958485674974446630364618248038280926513511031008717046120208846217433294300994616283875949458813717967656482760435517639205021814859941968715038356068157421566313066743415922357014637525962000366279335394719478765764225010708113863341399648298607668678840199492542564567183974493793964342462094725686773751506345484313511113654959791510132619312984748513125066249212680726943737613408480367503917437457520141243617786458758210660173504682518495119941998308850034448305683817259174111749880163035178341148063981778762857118847053895115558606849187453591598698246411642391745829967811502834070995701430228242708481692656321266403919385492746116454166762019054897450266804565142033142845593281542772797920760168000085653979712746742799278837203883891475103191690923412571631443420935551052122939978824660497595783006548813670194043032644619467477748808663079768931186115189716268681156257758115812596871740372199310800175951901227876589560567390453206440211667860509180126147081266470617951306697092055342227898713662770650969799235927845107130920347274349571019646371983532984180677456285741657630654082034726339351080374500403518883238625308735916853402309852798629755023282895699413341332863852664400002992366033474164323079075031460537052580071850377989408471827430872622466726935773624353747793142542688668276816788942114812605949362186040367997804296121659397768520868817589832950167506792280427200447872264468372063002189703438799765393898152876025398408989558940950009542739136922232923647672423040670798405413697619981733264788630179902590941711182941802738892016891032396704873045305065390577967105596413909330194315881943579664095164653488601657871914053006234606670159993353285126401540584539101151961974187440221121468665377553674400267060948184038415905272324217988317214470498721114712401682485304570069846142685544942369642224185368667656187898157571925743492323987615036394734693007703710098170169271397186227582924418705643440539781940980269230482230554893840061901629654595245635441430239237802811963972691053302837691562995853071018687547482334234716694414873817343128598980329946975593009313425825490704253836605125319282518223959116785785610117429149708071808694593425068412233352110809928728999005703816853263349548522180732599029150079518146857840259147237619401749015465106198873048728440010715349885499180374602641976140712922061501165404357560902373368079170115444790308599463333930568799906038691005866755028385182188261186717240244028124562010836984250756989889785684271192533040865498204471472558332272464084603681476448918439173946855857683390634179404935552634351772017567697819623548733063615468589117194186142220180669990858891749762151283701183336713192805651512218290697294462834572274291769939701015602554331255939996789153386114349426806881324588690453056954580740478051168873074823826924546824790545608276691361534351610048028685199908416220865043039932100865998988055653147237678942024996027205350376138215576010478953458956177947372852527190261016944113723417611684272394106295826899290072016561696793762466534401986690485976563989596289749240296950188440096408693143964581434061436452082931166264386905974847770401164300573621234048533448350774910269136797149008654928844288434005670238048256617923186684799960467331175259818742691776527829210938156859583432470350950932100585226971507727047724337665083546233340958087880281351165501333226498414923836477234360725126767469049045931791305337670406805737695225460875568140664626494372547127412214330967712511647591659338118010722237815407349641529041422461053706335546467754802498390610289247511457913615480233183886246129230087934906188198940265546776684942804309044930432783432592904926096019428917287001348106220632822405942204404558175088842229993474678167844949351143899398760801021893398079955395047873455075480666769978084980630695040481140217738442785610736950895585771070803627065657244516288262614077466286516168718958526202786023694964241326384322656131870969078041767999895728139082991863871119678114797920602308026252326361640115579139649522518054531060942976462156774499933802759423046947636740546523757410594292513329969554389182066798650683255040979297770440923769299115545168083966540408148776967166901914625747359062779460490708464878594039569622703896045930764633919518706770128084980377771550286025436351326634694159566655022481138795430657411037961213971277502931133839090175621848487683848219274461416237720735456108178599959739792232076155296597320601994747913265406025868106898309849276351422778942574601614659946485108801593040733255728655337431866441253253754708195639353189710716661525005224971056366480414043017024592528291017425921837634654863104588652426321870420448361912026850810182863552166492633813086585969815662660449683735249089438717116088995282405028012843015449137852373068339413970795336283452491842054135204992730076622711906061360935650211238719881020537433139934921615611831268907493088980462706290269840222940595277993473227374813294502784187623575674280773458268300208238498114027353321237030775684140164103342621453189585388340436001863331909946687504704712624708340646324730941483411371728867370393338821058352849482951903780402819412069119688623574364624781659690469650511125264097739702286625801776710359433990942512052696766697693824702272061469287025526809544837925860680836265536467884335716043097620101466060698884536910533415964422219909975011783738974281920210326108550367930694670331261651285332445458254525749310721743380056851100762211673264166522416288497540066508879871466595707382497233180046286624395154954517851367380184423741921595661206284601199750170463382251818468445842872141728180157896877605845556226738749123189899242404789244456186636109451062554582315651984681260696832329723885663501038473681906660754009329755752212847193251345066239105799533215290738305120163597412634612464137441436100844015921616017496183620056108671989001033658653069627953416835400510839757900308097194409192823450218947076244500827753356040465247587179694785287382914315764809526585159954131393939399399053788006122389820334937639247321468054092229122299312910558476470454593822555788499553040512962269615631360550555287617980438719490320244207991128263592004442513992785786701860676017803943026476893908419775818895810526954805454692026906928639853868020030666794203755890263057691331999524358344151203664740909287433525023264506061329259124604422841725501107615736936071986150086076120735809733217501486646667992965176964277862405050210410355470720229676771006677440377846206443143996425973283202608928603504066166390546251994634050755700546461408381688958842339833114734155933621926819975582550060944144610473519249841801939681725533504971425931056611225866984148525273669329904287937558681632306282970136904788460622095792699689248729341452366001147452100248259310838898024896648038292130381201011665377226269212792636036388935093031606188751358567477411024938729834429392947213754931655188564968739962541309622645298062119363578152416444016358677563771430558485778401266188291321548131483918905810693455021492452576707240198098779215608058761087434908317671274878849289770324059163924735514987461154556634602361494712220541578787630293118389187017797340625422043218876820828377285883758290552294033228499148865352276433305660956526987423097367235884576321201554216639628375182525421979987668424525988886857490898679892814366608114406653280066808489750632443375415489885467318866316010337798230480983879345522153603837263737958475790056242775389837945658658128097831921326638628994475359703684675140759576579270522058955723534518806316467918044409507215600473993804352580277308004414388261595254927875497310660997234969231508378337495601102663560739191239713003587117606683915647911913647991330796335005314234279786370853447384030456087720541787467750165578687154566220323336375862364894848340057053717451181488748988520236943917482870487557379843480146780540321084979892819929848484842534160907151038605249542573399001357018920364915176782324290233038851580414129018770425631724184784150911929412085277039185077583845147867365583660794843850264735206850666494607948638036650615294944628572020463273264081674382069098003795827928704721486048863139653929816240770988809360654667228556603040969995836000331110824201169113460315175195011466891650649854277137323303495523816663874711593290253020282941045037944170863241633068215454772578553196439659921953300084116080449116868011145363802586562116668034635939825046409372505317225615546778981702004129265940367296214011788105267362344952083287241680738147219264401346266361513608255312349352002512209822609264935547205561748782463671935150725680332420990411519894728807617961009406595648574882785617516778537797343186744637177156556458694510101770321555392569124391488360934976499526703497385834760439031214451128410087259051953510271144462291243839652073279041389064205155351554923880743534424377634534766017121387659995637248369293344267713293318138179625314124204964325738877617038624692710999183599550703876443721526120688701040046712709637523792006536720597650892695806981055884119771805580772535941906898719518444897026643003222831076268232849199547020499261981488266318913716037728929783849082807559389323759804994380098350771735650173656974586136534861425422533510338011888010189280930485109863827433647259677165895703095854300430569616882675531587002069578086797227297521121289492291782753682583074342461103900790216061561251031683352864195351904126648401658535518897357937358305070875102819953538440922509061303563019409430747944898540086053323300919145627736583764665952052223127856008703794922078910788679197525847533450579373410440577534252925094395833390034275552593767812473141010354272226801641016340429947852663806607856398372243728924528364947965831579988485414647269669415261028381609554899772034346759192788736924866312227585753717161485256609206522471984967860129268508379184040597274191291446546223975292491036259125273281376504231350973755073334454765547450095161837205467656413878532659950214952615059695339581837968849771393582659602872945221700199038996151901408035100199550220318229329087251530172683416666524144005257291153602369204768798832819208255520551849219021414649829473293362644636745273387390503080174971304804130930385911218752570542372882499435786751641706834994087954201026683960515731966925698672728409588915449216560970491277277680909136217009388053093378371090024387431213275458391385930829686320739067030908957118098229550475941441711896408948330096253973579121680669234913766808178509951081348850606661387470810688724084631778859675526688445846401310776358501609463988876520262403765340889883259285854959109477497039041138603112558595393026787403382071870391214210969602209949390340502957512083238120406726683485389288096247354879499200380485616656362884836875143878040074159356160850400814485834424425742390910081435925104525534031279136137424860062860285973705344226749489819103290118775520360470436496734457115138731892821801481727158403365208804538340586038815974909113754032526354056016147978850633311624357492052147736371320797049903135026857648552899897107434974690787404293502099737394806937392345091549784055109515380812972291380899760601881485750344691572923555156691405422269206678496239482675796396778758514834152959859621416038580590537050883593346819460927864830430440209391205949892091251563990471349901622253857969878958828960453846629558676270095905427994635100300493238052666016606423734217896698131952297975540227990060704636537841206818061357274954189831502218609398835534027067553225480135041071641978669071086945157361348209530198540095106125236496150376811163789319828281225190986917863577012264669002574344257420454579867601870283420526346939737206686484788701475113815277788222739374219234894053975376629120255038870617094045333793157586639191104288646307831309121051289103265611484969543598351617733205800469795560743093902848752259145780101725534162838519789867330818433459440171329698864729437506263588180624949126344749264338795887992975003889850493540432662533314578627771008818522764801841694497427301973757915917381585639312417565697239789176879771835538309761773859829994745952978875896016745541674946702851454423559060349951381932654796752786341011154230250940316018187814709348705912845857661477081802600694815801124046195703032217830797622788091118629581103288500760871375970255899708163596675529026997078862293626896226950946275168887697962205485397843824207945363239960628616734797045903442635128729356772905874461188273966238994501890599975615999200504361158019824820753242119225709605125842593592932725593903132700644304710088559033271177573471738050612491037296750008595053226493100580132019202741484288781179836977836011940124243816493186101926756891998996563409901110304304986217455542447815214770719561663571213696663941387858656345983903340976234944145905255195190341629769775651200281553716161569843244827982359402634007303980036228422633115506100643732411123993655638980495292225839150736709447289464401258413926044804848739491780020924992764165546560098184298776830793748068675190170065764833973643985106292589852425749170351076288522285043066598494554860571920526031891045488623780962283773571705829935134113682285341323047204989691720274912144426711930748259500259742744834546047437291027324126839295865262236687356442976486002816432464156543971761812244723366140284554187317685149416841915627898146575820070981916718261535549003002529426500759843208129869687756182810488617648928563241534399047035610266450605830135779160403561400272256446019041086575154604130423902425550815102421580120544279368285489899069190636112779302539099812479638957434215220609117032520542462247201118808240533030095752839256916787828651429208886607936608966722785767135597967338406974865239280610059456520073345260429827375920602472295159184658017191260837846839254437329785122578627608401111988489793858486741777748640301907086450283599348393212876561456624245371023436566302553940058728446610358594263955552080416277760680582354964395631948564436539641144950715250885250085061589209046902287703185929338781424620063648186733626863616175258458364548153811874461491991747929028210165786273140347665927483865435559982113682462667548081593572353508042150843877478220323198052260270485026843888658563230163002758399273907527927759495951729621306048997111577271270909395392276618283356435498836629175218085014038667114630219138786649572815483072287287178319129396470538377421899346996761529585620495520881242993255760326002041388204030060329205613943993137701113520865793765559282153577108161144567351759566849945180278706470664974010937252207949338334961573789728449269163921246111917827103639549721535027363036855574837320422076397789878915049908048089285729462374222291038053481561860183302582313921670479775202999827145523387849162957812616606132483247831094649544202372853471053815448307126280800325359912388070859624968201248578366345046336795153368082616101268964333018004324228044488037790911509535146864717085233930754495085132246452426450029279214059615686966222476568071318535242662892160914421672539537330930279011670224786660650264581271541558908811993477217851379212920024278963618868168686253574753148638442647794115282379441012115211782638353536357838215026194258853072589509514014942694298693426839374898939317081871347466116593240418218851548753937506710557628621879695706966677036956815694254850879553284440257187553858907843572334436143438251131477996006185421062176091668063774704394285659941635570036704670490867232645884164489998915351345612420123443525219775028904116460794399212662718949044703618334715099961734108963594001129771314124782303382019909239678133093981356234299299009709021541680596118626678486375050645755774574941104210761893509625347642053065013974248626407551646409418712405149384232252951561624706459534011722533929927779092242982350559223412654951656659277394825388135492114028586393714367361077965254681205602775312471848619837622147901906698346653835301938040893664826522654044132370198176868996492647279783054293072417318112712994699873488001005945723561183658323923550526902742236435060963627646109753297558401594825646607975664729810331428350608252828763064577266003497500179371483485234461375950083939791188469499523759602379857476337907176038446506433837256844027667789593134334661243250208169666161076214286369370831447191678386397434239753774313279666748721767878503164880225012645288682999547155508857797905221175876566560992678317082514741788567726571602204267225244558012951535517630344231996058668311765988704937134470405514529267395842228958055883621891230768352987597149209404150881556090494065855072013490064998301753798693847177550745001176361088548533346562868492169535444804127724517807347633492751799234394170748135675674629222728315465941718923878384202668943785719557825432997886697684861697826383667204492513551358403039633370068121254988242938256457968963125701023650905492734201861425994782980964696062799912651963648009834153098216059861485130825847032454499233660256299017651900381296223033980940536608745834735287878589445746621381574350522800828210892554213437518752230094983248412190927375096016648301812209662598592365903592223850620507699000018847499368868073868681604047449915999825064600892287016269395282845114455218887912197598577962331145286553055562711688840057695797412868577100242995134545181971695625426280424412921615085009408171593321457297330043747475819293543250015822654698231740283844899698869282823659725173095344729897761669772994487466053363766612633683341249981454212482784568513574593969390736495930032763431693265329581201480374531771727561463472351440823109243658967023322851754118730754371237209582104848170580760320775692980734130076632638677001384787950453486172604613432184678400087519111873489486381057992533743238974621293768684832825780607270891762516668709908287717500738081897806374982137417854058121049014086185783279062881987571663250732475188044705909744409523492296737192980774622678081274244655636919576391958574629733451007566166134971367727667538875534529363169285501334548225969422692240421389253661274938986671821444416286016893897410647807125265147570847377339522555906480349648528559426317734335906686530762183992881258608488539025835345969182723871501959244697235161251876112693910277945239660781278240966576193512125748085518096399184647426839837032142638933199467539415139502792728216900478357928368562621099095194934363300386937539544101452072483929813871530559075213214295242804188558595226780811200472730142556042252032211506488135532148868263436836847013099042289269663471436079937416940400409591766586134525901148917869979173257050762469897194448318062053944583722348690353693814966034937791107478241490768192826260837681437365230439593697191701473753283137866849164657434779014793590268869315540153624225035492757031132556757380605579238908540921649380040569429817081009256852444126289945825577426594973468917117754602846720494485428117117280338234025361579301733686800466478209867225810925693002599182944001535448389197304405416814586396186210592030020949144488881355365274226805917745692207147738908596613029799944359795202126473838092442211105443865741643092304417635698923267566772378334619614582722821253740261499747732752616543055255898671844300276798973619670428028256858982154226798957046632796461018079546119061470625766790877963611166479632015088324722460241017936193986624386401786027448257161748777157410690223551728728096734734064458022763806451298233497149707764423844279434060876943015696492992468989424567303380019501941304135419102123295533894695256661280138912845815241654180730896275677413721062029298068925302365406558952862826976272865336004904127977964145264072931116614668805765945779433014292014147105006503611966157837686505092234972967757347563855385187129726659946843005735265873560552898089472046287598283620918086522006570436985030214580214687451548631859090910419042602190618249452972760632448342266766906014546090919731870962974671135032817559768819075508169163379743168655041267512849863918510881529120981897873396076518144704189117468221726906792452071250682595285746482680364685925466895764842478280833373269777650067888123439135378468422786641015847198990308360273767214366334134137649689349710152240331412079898706016413268819524600074072852811848734388005503870755157233739668293244197947157113301357695864739005494138456016464203518714068830279679934240210854362163780218017828146600532913347336354122968247336135887466508943355810037623613796812745842421456812018112381151170996862876879297510804167770035056440737345257706377018360730004476075175638514252504199711560032805172389893696687993105726429949299059244356768164304152476058807632442145144066650466459802856537216124159973658133124813161953073006952514217613475682804135580025223000947526348788075137068170107554657658365482817839234696691265384975483891639297499027494987645952619325414860886985523549385774189917808010043794930007605827008467855309062270651527107620443462958918283520235206371464250021567609513748863999578924832065375675444751871822936997001783303453990938816046895825169314582336752307855790852448405260028685332623795724665878166684450686615001721583169188469883558674898543626263580105229737592466996160862467228154207973833301972062262818356245191074741977966754516637261620264298349088373036593423478123329447751142937100559506759866152418567446308937023426379423889879463143911034803159840549386562483582944221597776572816702774007662232717086931015743355014226474645579509046501797218511518451992069015276164257874676343902570315910769453841784230560914675700536608696202787536924983806267071178309349500274193792032706563353920945375478148811500040818463201944411048490964089183142150972338761773573923225638974916952302872001233835154588879424843617359674953271238799725422181231395064397404090701673482919964292612358372220391379392539802178332192311180379131869510440325628917841698396880405961854991424015467532562343017510330748069296752177426928156572696886016598965538071804421998347429844730457045829969930031107603037858188634690702893290234879442501994504223974766332107471220734566981412320863315669496491855989611712008762908082018464029854961905914393108338968524782257932184469504226859880131831433446508594537424133784745947519643202327902735581426304925358836668116175744807156072771624864314821762497540087293742110029045046602724668262686999283824806907943114858197242843824849414167177256787904892084795297188877823582295958670138974813193023590336199606560268736375848563193966855238741464374507824401290119634924357610197725948394835727932141823187327077848897310242345024353531559685240910708686100917846827579952642937104934343559455587711511936395342521347964648259201675169975693097922089972423693728961038231005914089416304231256771507190616962698021578498335214309947982867541775599022809012627555099243086962002815121407535784407793260365554915411129894421206005198111258685812242866201128493361336425363579874229820729480461356343351158074446390116406177905150055699331371230574211260029951494104648726747671209574629865646215295024331037933081717143741821123492644462407186253097886760963513467266798944745691951983515626329787339826815853935958778838500957415940548998868685073926126270430716634692687911541181501672445663059778285948907273171667073072881267852674176716326910325083353397564666474894601861042220358765466789753735591951743803322379605265388570308613264947811072155508690442262687142648883134336446420937347425535417756154192062114483418553605781352418414060769133542825652552432807333890312949174605510947761730168988921254250889912454032790965715066658127866392930952222796875204549018958762855464642577728997600885370037168870181482448560221962977800182517742137345659204994788325077809879120085971651507424263767176763343327210114677030714190672558151616094661851389683871001667316479123267994520504541569306547443057090137547978147380135995906990170006918000313569248441443085000640829943462730603650914729046062279968725518877547118156640736176452835056649541803924576553134860158137021981424400865082686550398957356327483722149086545415012645702374551510603906276942666409747461974779819686278209791011172380003658400030763330314448685936253352129096408052566148211359888906766922484004834015402456610269114428696917722642189796947892252481498831509793966434183896125329018109267661309777086903827020548887097223715049926008708106601385369732311917156505618122767697582605123387892641029937186184542788160160356524361566222274088877661537517220865307014002532489915888046162359681170440071069839428607465288356263552689990155655591384138409089845808618316233770201723519008858650720206305084176793678561805115413978846354334498913020925412123207635124998879002964747856576352027454040515549353762413645845925960534470058769204318402049732418998639314597828513851774097059333291003216796729417470755062983141319634928590312189736005132905450454538801146150912827305472547288339181120868443106691724121048096112442342698611380830153060008099919305406123376842503917335623443508167663460957992559511797703710262568057178276335892796520464866759499904969230736638727317744165154768525668630267654532540854836871673551755158892805463716775309039683251616928550116434436054017721009983803885029462728812088058925166790994981304875880007815821574761640161294394028598710222510603021231220563227259699784418845087558842230507315810730796271104945168450761742604756028812995872846021748728019368909803918696412092060218265897387702537691571398120034239155570463597135112815300669859587569905179531366123741884200017964744175687219929619882759274362966790210168141902013029869565119185413357273389246891091116387145962804935316486573646478321836473868979303714228781248214825367852938029547681991373430301723923220161873507887635972726743213857570009609137432116179645616860332111955619365080855491150659391228623867538099835071995771662166445075139777467926102607846027915840624283769956005788720055128233242999799841065242731832889077583564454442364526410605011418949211941789355170454709407457580117479501091991837870230589625505151982159605285062295872778059474815178443133728370247707107279157292601847353910821096689475655275107519961714292342756539303400718236545058065257976185878706009509332687578249222156972994534231313430373870016379688361732809395770987006496042326202041116721553154152627366787338330434753724669348674109306931291450127380793959925760258533714558366150765263591760663639935362569539186889598512460735562681742721304058960418163692783641600278976760333864638598047561240521105732339624543952423495818876768072731805612702170886164569757344101884055294487616415539462587507827505105575894617714967639803200790468119080446204067531011659313137395212032805587073193225489045176505029544258190585645847810901218896865722516301678523653711258259208165308636939944242078458919949899516486318100171407184679979414708300106458714602076969115536801418394737704366798771480769494279521821532422766076778176050133974170180081167146591121475774070049691245072063045470589873997241297757307333398218488383304494882835103371187829813544841131768807687672939642770041588234561647757253883084453165140071537092022271482573937041631928193638709928966744930525660158692349104872853901990174259760005292114490931286191144589976265201689332105903857109436956562512435354834880853877061395135957932426873700551977125250091926969153417782806491269013738707520718462244216213439298176530006445424186377250939534710516848644228013600468325935180295645795445434175712949747795085440137923801851076156838958685157881563067990909909033915002990258370571199481716541409458858675554048199914260469776634061610630109483681704501208674176811073490399508366445996225185749292515333854946014954353573883423227133765093769539224189865108357283164935288240837676734345357953948262559731083725142795499646871511639232779415327764712674651940799055394611218251557412708555337369665928771655501099451900293967479314393086554229436749525755701863552578198933587798685521846192699298433504902489096648884062977071625234303833538192080553953818706481852478713165463488668681312885647602266099196063321771873916426174170795215663143785813804864470100788425971449728231283806615833961899637081299732000606460900922567127525524883278843515423055169305460756268110695040158818436715259505515702846224016665386665744984117476521849421506381916620772271886560218764650343595525721163118679183165364905645732146486202176269251768108291399812700074835892266988738147150117874527939912786287532942115050326321443509015285351383444045682460073370407452421232021937432070550463078342048762519556213072296077256572416021869968383287181021756499274905239943508660482860704186983862117484284355830266599522905811136200792075269581258886417557832123622339082699845623641703526148562146173343186488958103890362841964120513089498481816364811896105531166916581119760353601073000540778139410683839853033100891408445916131809359210005897399433989208832798901290213727378900020075930162315352830675968461265943759310471683531631355698786386839758599840207304218892539827621435247090131320626458453484958342280660978038645943876706406275384555220068377746733807943075362155407505846566126356069663267276958158328674272921420793171407449355026907585973105023419327629042759524419150060282787855570251207053409900773398495605162703601588001273408928165746018354129002137677529287795355678507906467612366175840306915398379858205364957720473380369322060725287467313426807012511259526086716532287744704152712792790934416217649593635976828529855344043100078882473824005045114050855868594300012914175849528432302888913745677833881881090357220930100639266400875846072443661598628432545561374595243809095631721209208534472988812503029722778325727086153477919042522590820833826349944673088059098683974950648431554827043320583377620986416870720805270110339193182529611619627801830308689393165988897230416075281268248024304670341360286969320942860427863256650406550528205388217603205070074758627080230144757480276783051877626518511980630786103473231644021173924447830525107870539418495242687742511542354958411518299857963482480594879806361019843698119755145020574387092040977775972689765102733234088717713568174617674687486773867371073088041873898015724240112978407423818222495048548342761224873346736492949737645444790992374740434780042168499393737487014293531099596921770716202373661746750665652800325632566233009420494844308511108863727995138231199057051153435807690136091728859874652567577190453781597400647597547762983433718408692730843236733483747646188458296793835177275313645198290790880551669100643170532764331978162224786387826443886646280134866937219620896112035353740761275026975121299592955585466764013216463217897559300523501880160815132074000795607327623262428782242632746460485055799308010536843712774407410736360724488667293764791123240604927651220001223972298234309185541054889530133335157120067835826840405636345917572838902387862018113767745931919990752597260948816442965432583062108819362949150066927067929277307648368707614756412548777777688777763203599115850614916288167662048440572498875464803200152268779668231857962363297646913091144818305572112160747347580778789609251892801057422729338739199587166038508548670972409724186580936634006649429348361608656921247643818155222592411955638093197949834582732924276138703405232806294060901029421876928632835218231527556709714017588046426459780711116656977717284995273302554485895442356237290001787190126234038810465841087395216439798836894381032799185739828740537556223106433984672364656318452914126951228942103145319280476242036343476112577508787980909980446288871131342916599647835422824706506137375545309583216836811421040476395900593824519708928024833452968090931166521527146982176145386993895559369565884576935730519408052788093324210821624784795531388605224380709179333527862351328965420120690625785243952766199201728932812373109357896478334609322434211038067123938509867002281204963141827744666129113456078266066031734616006641921151313948286040329982592095734583852273305878021025299436245781652853267043880106157811380367180620518205983557684250390956754767546592277589301631684550462192554041860043317651222468808546856618311694123910265319237025229652255706202032497089874500842576639694498666759729466625186190408823662457305151596876725836695653792890766270868919486058156145819504598523047336842713172747061387044070166661402134356541346030077658723216272577726713972576099117969329424113830549857920290531395795777675697394872950112665228962421360805815954430933971327793747088809860167232564235062690650590595030593348455226125486487332715613833338155746478620892943698378020319943078150096385988286064235266797937244816953564083312237458075079210801007043401329987140769438326362208518165243003782607442469516616499720097416276756111545725966102466319637039447122657320492329111854474559166512193060479228945960853971193681396047816706444099025561033894900033839456956588781342724057941530811646245214525557998057803625457060888323937597645323698964053395932178024257823748202105082874556414742422934920633313000304072229119366067017015068800192264426731341013762470780494023225930558466757459747688956699345484304253175810129380823912123425485271375496159205546559925532423216539982773655934456371860503234635935651838827675235367854384647675949418958905877440069446288313013663487097943098613848223056576625176557207125774939690611827960610064574615447511893963726638245157878546536909882387670955788879366003740249832064423266826340899754069323096000673572492644900510001050031393682290003068847856626014362913938522529113025117474846457165466749190545615226122882015849551862478337044436283792100236624064771160514766434892969566594049862401043315866365301392164021827435406487383354694264711099316486324744242110063865290434614054950706040115159466758380251885317133035116487145834245521900798091711265892404515687042247218023529614089588789680056771319474969379066133877274266176991991855852457997392323996181909110914773857525574203440916316995348589313520366025870547286601729824004728988952588227170782998574574830465532323238342783759644562105254381691791182572543240436330520134461036149961355200844369256995331822631724279740551277211573931540451737656985086548108040661201127809486153191664773681914022341110541129965102617237435714041928932007860551196128021295619330271597676329573324741718124164328331845653518298719024106291929456949881773498723768076070930513234982878679149143616551322018165367561694501548504768933161077304460421091602598808826125649416034303155342978923077227801456873318907539470596277397618124452028845193452729952636434854755333801687780243682061120386626274129709556365720078608207548096981160672579425299522708679897696001939821527860223012519520541939305445390999592283276035809711456212559412330291760193566715671526520418378165012919563425205171042945851175601491021529712633872300827317325575508694541616165978686941477846101618214477097073521740464603212403988374880451492047855870549909146997661723420855890569640074563372356378587407781582537972094468816695331911085629762391789044761726552018132357635114227814242754347933074045796467684534561931514696241284025491003376189947137233661297031128429632223443493613031887616367360838344214198196849050888329412694209097546148080416616643209762353159800824802326607830893236389487384000164124301820872488898678123129530722292139624138617462519169614388704378223612455779142044724651366390857502965431254851450573567740064231584169802130657218833422450895053346664310731223336293503919089856216329184786001126498238015525566222625340544640864544683331398973679152132116776964883763199302090085025718954189131579757895706767310667873613040189547730275657530195586897027764573763950608224442134317573879668246943122748572420978985326849709566513759076186463001513363247450226767280439358804747673897276666695641088009440698187535846649480838736657760722405989608837805654253787969982257245605270445609520359601311443942024024626148434592378934783657812450376633991015620466502917162188624725005232247562180667833522469394566147585795767390327443123603584943390815210624869192707937741409681260024697908143633469145807832021760110598600813653699175614602243102534094775817198082344243690962559664485415966703495638640153366027846833197808019350817770242389200603828224290962780968033856892285325011786002183816764060523197606973353178937394177762372843339417327550693472135948853038361904967128964391776254734303503000142120426799360281611357930175384147423653024830217310727416982147732295138016047301704209532630292595548476012528225288745435235526969623793051180865923200694536014731537013153853188788831608879235579199100200606579336896179908908639965833334835308008013609380698647762856528743906230852913309664279671312518293583919821698453155653515985887307896371448185147060186604109946209689652901612260160724554546026175590875866114329115624035022370309494219303611651756469388513586778307827841617643216214633945792596279854961159870700457368075322282570758137021757936689450996260659463987449374903658750917011696757573377442181590022559975818501940784147793844820571636390418772066352140384489371771003184301481760558895047948563800525464855726331078442792335693127415577833263541137986204265134826164345975162240944235049719024824078837962137998336919644693456131586543143869488380809421894937579713375493020553549464936778406928917372560871241712031494502414474986173683409175933312112569778465184073229926705076890003083014804067265047357335582921894618804104786640452839306222946380273184692868096984865559909933414669141295689568218403664067360891997310104421728476466961521223145023996608864994915304516805624089965820533674803442734153712589676260186068983279974590455202408773452598849996114961269876613990254977709927602384317395327804297677142873321305181465518812083494527525479528392288783768346171551673920726620858559839586147646457490752766060262003630416671763645913383842021648374055058783727298747001888661521710152929546523496052249955288419623496591393503338257544351962564764594152635188962030592769196509480671362697227434696355727560709552445683302903729316999938278647170042839272677888955318929798146605091004966007290951071841059400919288925652835271638888070058740301159710461752389631892934259633031594831370069585124866805740175160477008272570178676659246305546359553623193215359784063689980807145581724443259852613454178696175557195412238281746223844290343772474845802741141328508287587788680192665395942082021465488489152953414629914056219961837647868001485668285138266312925346794563879955636383137816437720331129666765351053673402607106348613750012730230418866344670504219866274029016344875973265755109218341019773217051283988545962258764273717551995058065508578973879455471356387167710635728922110643292443848358978501758662329133269525353641521200073883082386247636210797442395094536419129555687765815937135941392855746560324337124919263291145695926501328906436399547954207030691375811201557462387348645204040188986757169784692758043233588624261464118250117101217040334452682124115549545002066383915455601974399063434361182422851098950178462610653618386822129336320742157962915486277245354429580869962540703847368948918828642115257482640332923405680735281282246318451794811655477346041363068720037526130357274400408427362821611711740534385393919066636803397865133336011588123056767666152695599613706535187982954533809015198647759476297100209095135404913448247921373169829659395325697818777191593082940886174780945998308930168246703256835318542019876343161337801498659141271240196097114566618808528633963390685480762462640074148020650748161407295347916364958370712037860694154229151509888144392772886700266977003278952976929840367143409995808526018338114620102352204998576418404881661265992195792435843265455117731036158588181849752851333465294860740037753176269455925797543761944462065901508356109170161283685140652116106337829306068874419658658552524043348325622190340119962846678672901049200511920466206240500262892729819870040480306919975819559472019878715458182022405158750548015351892045288203198936962195721086283929577663813698335653743235472019531739865620948289838791218065315626110623193106172903416575801479461884112543280286153888471438987509903133385686836088295652122286539138421013435024537297387078199000109800874265606944472174842686363131473835719224419045177985104802944389488374450920627244345674645680731753871947659014335859073655932647735126716027432771994352773418884263169690951679565654619516550465758532373449042383561316136619376899692945573661837331256923828985049771949671072607976162885971928305040942492012420549023170988486276932287175420791307449526507511682609766102246075812141320375122379010518069348940219097941960801210145276936075107919182655535078524720448601873383462553400591580764938752372231843434824803445900528018822639325585989959102031595608390521408730074328368507982797784452925414158911974123929749963819620056629426051052481758479222838917320718163970795714577964292948178656808939327543167046420120043189759114476644108495824552361606107235073970203264157804637939709259308482040321452906847120665999559893963484295257250404781543950479805490715569438496950550310067226590453527939957613449266482282070013453664532584122669230959017749535992093736618218614340844282972954713234240665635017390062154567735342843194802339936634846059779476682976989236759344209080959154380458895549791334499226993932503235590462374694688002155143280524496998108875114573939837935404001494419352008123359657852660114528016677600076712497943773549044307995918946319723772539091930346233304353715404804881736911284907376491275726579110605907748637855633005756460886979512755226850419970111472854975381941360149709921057203221785472028838621481499446795677838273163412241791325155080030395878704319852439637472354401470695847331815409155360650932880140462503049142507884035141060333325404205526906058088860518078728027682825989557681134924767687785885087001664855257808647192297995766112265749404589094191479205956718315184917924752464133764797334965300908326311320650104891852940301482893646595856427823183186812975076300394978936633409755242384969950505090782325902338610436999660009118762932762719321501632809567966917034175341713581043269764656457392315368877250103341265987261471177742986698079725280163315298591136810166374770523894900970394527318454360731185792626457613850463239420922487800374028405689719356051685402478153450311278097139489730538983439163421466254072874315508401797105659035577863351771191569579292734600831036779064099016817931129679267775577145302258090559139099959673755307947167049135172555622952126281018733709640888294755600749928562527424263002880896752578394383276252557029734170198529176889471612004101337738132832340991223437171132970165137072245565626467730406178145240566287897617289369933389698147626808757016630843897417614581177652074321668358444860064838777195110856388327205050909207172796622479418118212255445152939706579985597419332680166564731043088018210595131377223155954760848438776183543272917691605263556774180774351096694615569600078745079851758945490072716901709030102394868782075585332148351483018839257515823533806627720283354632439314950226078274667092449224868621996231583523067931280011823503288119015017102706000137960857593649135128173567933473064458581781916599375371025308041844258227508812549734750927671858910820888751987258516428590677286909990469482187185018403238411614555367982964474379590852750859805239714228434708938025668207581845564022908491581243531611416891829232233499260123856953402192849160125074949226922174703575565804444194746365205213235507841979197532632983844551601300612556156565488182056694620405845478420009833581488500904704119838341857444751475119823379648014994020147351699692625954898667621542867965292082994101952723030353695536036592190383783538452126870187159508931307696584201126241149356757148892825949227981031939182573834430736637727048252542927239829364483328046545091492824702307290128525126474491707467200839946822465456887159919417813934928706178753460960299000490442977596587235726070837685473099513684648184544836313093499411084207138274650484792135706443532092613480253855585492608833181088383207128838952063535231720184816193822866468179014476774964574006155390881534753933480187666502248019269057395266578334885483960965581977115875593344732195242683592379903908854920565836075677879146192954735168375518353492005970331232060436016001952729341730115332149191593573069426471413329087569411630190942061945164001678962715547679728584258947059902066739893425229361906020341737938847173473843914431643434747535804221364190496041274385289654100852235235774619095303446917551674317829086878704726648024100842617029594418511913283571076407972250882573920203538936454127972050201801097424882185796348395330292787082447980846590237339156201463817716087957289168996714233279827549284875060493314089230999582833654135914381402165123816181957783054629274602235447496754438009184597921874649727648755792937226155055246923721608373447331825762145672861315330717239840081535948464878648536742980070740064170173471754249912941905874337490781582270902835396898421634677289136286474201265288611249861092873551259404618663198740560789909357760994184546622663896489906154021430743832927214624816101975938377043948536653142902107280709870737547102796029043214268795502303681058659818309465391092855588104254468620605185382738456077299572462199571210272295031023660953229073454901692387777342268345891872634916391420358972811396129078884643479990491610723584720526901041331943983554065488493518536771714992184080879832351750635111566050508007679240168478834004977743976082722971909177658036017179113638022293356732935512514794365430775312007803033502852260202337986452064029299571669992463547016564915445776930309416516103636228433573479374981405126724546976019389031010525774150145132601527950262169252568404380061575197338093534297676348064374956183399721522339519309271214764470958618663960992129226261792779945959795467513908269226314111273495787570446384020767714928939420006431085253424714773279824267328141802511239709560695518142534933450234733894789637612981482414034885509167885679903731198505076300392728936207057145641917567648160537803151364312243034691055653653859814349163534726176044129965382480142182599072363056166454401903611655787363040962028886316243499759626523296319583641447964166156353541003857095901516496470109966708070796992000062187364175115718615791732597819199865971655476636018439493253726054968166616439202167414233926418443537660096767466574797991110507072958544450069464086989658278443071625891058591265483851619075997137664621974763580241050916863441718976250259408600093267464634478241553424792252548352926199095026484150403154816173422702067541427124868007680539127262818419586764596865115952995351259985991242243466730385358430293107871355928904295519917488633140825282293660274535942003164128002995100086708086154222100557305497281860229581266382671890259014818142755957748130957805387252795749424491887314459515987095319569851068391011880485999543082567939534043930318716052530362687232561062503155865287729523767124301615770676259443902753355679125342072481036336137029884097952625143587093044246903548740055302235590088936396419170462655621942998858639992116470423060531856100608878287658238628753210430616577275747530309138743398406326086294926689576459806623033343748767829308453001028841819914955425379335610911032043221651421346445757567660822595285881522096727577816847630818886040668086191478895208531770203792934189927884616671536510133380003728604017177670893204127934601721557731637109782899031387064423750748369380382313016587654842470481570373085955495497876977932958698186360577781279241141275894814125944341163808905381151420945946319166466173280008903807185239495912048746534846120834592576155584365989199403491448038303936666480462103591960521877029996039188957986470336608254311055378347197188117575955128461295306114119128034366057744891236065502372750838467139454391186791414900643262261480206485258086724836194607795277912131023659428974024662714629592318747792728696630603334445943435942823788336576714822795709758361435586547743443764390306560912271840600781335989089285125499003865329117861448968872977668285994015903316254752790054474283740407677178533896620495034339919866656582402693556948422189413149362303012374291360293571606960827997956917284481578656946366561810094329198472913086319461841051202673243966217167349425445959429398513633111798630738820136819134426968763672402243120563395087932923380384884753697417733986531789735114496714582090902734913136937974343992171297295480210523420646353392134980483109029816808167209608436084998283126272779278737708971626412645571791543796615201473514510660064311207438547885747432585957572412532243808086948420746183334407181229339825540508148573431192202563697017412643550348802578884961914780033024211398591194161967580590628856080935575314729909080695857905918706556125551646958125446130393677071377726070522071675305842117294213822609522279941075592434774878333406253815878966716018436657191474961651270278422474106483860781243767838273246976478596866193145058550160595076464295047200029756820601386159126312227624364959970472725919238323657021865157466377182473084817533356419220103155535055291611877219735719287987928462119996294398453185926349005018201702687199511327355993330766008773857418098581522649489890154158719688194370419482906526751391977398366847667127244613000665905417730610511429727276126989129255163367856239522432852336308275685945913173543717171992026310094413487701736853932737521723807443022781791587609898903757391398024036715455548800876870605949414888920003173307043572133893513217155323659696216160458103612393141554763941019083183703268055949880785107889594868287259404048023731758566101997114456580835772670728270385643592800054376839481870094706539580484189486419782792525810495108028537590296487985935204892125830102213119724261847345775798635787135113295947362277157942009667679983007883003683712552923427910888840481061793707660875525952593485232894927518480445837198562108501005873853440438583878211717280901570861434900324668937484907713750392278099315987844838817260906411825092637770338517798233069598607595514141658949664890977213293279309266102254204039547158373826696940613638262650087594891357230677291805431674053074002700689871325599985464574810961880021651005575205356238677718648697558309734420082853403014764989980965928276436328423651046188781187740628513294714187403642997979550491655873298189418355540849655370246376829186924745100643363638250722437403179264003343737749891815505480437914528768002315972086688942165254322138764943282952443328080898505143189836223128529865495052900167067510158378402493461935188907502492638200908436839480989918210477855756251774199206137561167690668208614976362392812019195773096782142726802921799913586343073677858874125442339771892865387549780721455275918988238552659466349957774802421948177727410446792760692187423526106790761938320185652598860662779819816918026929112254993200908743929790816944965444193057814977387447200559411121529217477810758451801217810078593216406837791718186401285776471713984502967860868928367337780885811068204645124956284767742327697689649977062245730045169423829554291680502921634669652372075141764131579411469806386449644087075992180366563464077504479968530423916578811303162051111992551003225147631550997014390354306404260460675951127065300254012942250989215806648097962897710199671043834215303358880863447770249909665653173051174039467993656401431175544690995314741937721300579513207601300247355099363469425228370350212579418211394628478176962938816373632495483965139170135343310263506578512637141986163258372963005025229001021549925131738717622610597657758375728898455863561422150447058724307402742081842501044116427984232404295519579326146989841952648255868007647971246680019380004593580322256953479298505938855612415366312977802615298483461136216112248896212897850641872167793888105744429782921028310033090367016244428624866393171688208500314799582062627859018748375064875182801328979676934094049460394430765783509157043074175699437975135892326447034709164604128002004827104501434474605517948328881626661860111200164858124636395912890441256257111451560620460500707244465951062090806548553318095778948366071284101328063999124500567227818042960673116900722916030423266855086120050084736212751294835327030212401929445990161905537289600596523175685189595973620594656800338499337464302750995188531090670967467438026242795573311776819991609387245538414052701898190730888887134887475787873842473951276658756422665853660434504440457046734115436076416924513504990576251358460812729612776891501198962735173173776177821401095028974544392148574678339653421756099637518634592962303841562965367791487999457420369061847124595732677582817688270039244642046410729740134606831439297376661088694335089003397122445235929708137335565289090295380065603676173056716635455018627191608366716415788652532918700049395723119838368100429162275549580774223135285754209833672231946235597707921408269623537246107050460883047082406825890641107062957756179906315742299795045501403268740964660957263109798133525435367128414277423402436509449165027823861250504595171731456337568595583095198182000349879981221574055684502778524248483630690010813787449537582087707351570363128845625257701977961100301424593532131790772334270200368139229881806821476866055323896284338586243181888352599954598895400214528808085102776388200578045613678056921518078933391116113861508504990524543077670804430506105118431833659609264942981785949288977268310212767266417687933744173534329313469472825558134544685692902064080807867503425053118546341750591387390815997764899609442960966193559839177113727311338698964456477663266016176900876722583482499254756933923338054477116776910219155071422029044113548900465176723387926683518924680440599149341133266061820387707434939863059339102089072498126200033985085996935003554934328355102160859569194691422297420447766478868114900028182952769828291421009980502397123012442935852616757645334722666687172466865878186167074489403181622000106085237408775125611929893692521725094909718510656159496986262924428168223630004841449073333173682307712552905589659467980427160454290614142673575095299660670518339745480274688725715804236230976824520307865834072140687899798212775339594270087528395326626120547344155737900665806021414142386966068493704865466779759447763199686142074225095791659790575258873466084776209849141339132869237278073797126770804307755153645113875171953543625873505169621032574967405245862109268200100493648156217518955459835319827266220599527092523925790269603040790304523917740970377747276857581761763815615315857836639220753547366469304219470575427669374919005608680555252310109072802516650624386626331016168084867256532983085011321460861431813107302389911663845156088799630084386241541067446012456903011330345934978267499131469104544501057469179521426786863333891756165179226323781767904968217545656017878385755755159465373834139092912503708465501085336532767600864969918151778765816203279876850879647099893682915086525938752715811248375054071525727404738675681572229967684273205590060691183672215984401924757572597415716079039613853472865504277115418203498420612485072289028771866553014237555679129308569261514918393521821441077409552634394025034252696974074415268521870309732080217952430100151356604013114399491874223349329972967636807815634622571943174055145359051090107725985659736316350504131001146501694266743929527927818134865422208368643992009380633788251428600859593229859788165424896881453344908767806637388393885360660613526272982065774675381404472683277099133122153346299585253306630138740212755445030845823856354058210572075588575056677893598192284093279356261399580500023024587334689468685026028515630312591612207023780216704733581295185576508674121992305502814473856411777416885357377027491918618566848534006536042917333990063992070936879174451484320953632697340696826728708525877499485843638260846083804566964437121522328685935901644422968495325667979216265997369695107415846186294381265355576667789222328049976249811264262026089559736589405450186426047966251373294276566092292060129715813909532839758231833792222855697729251114321372975081655002627171726270239273028890160459273195003582621451709158326104655560545485898221051811076021769252076276861829000710297535967556646042117402113816285119328130684769982293262973483914647751770039712371246508576257697288490442317875337287471502835303164083068204324541091192605909308121337264574113136989751521620352315121637801012590222414025540152228798405749971430112076381208131786095310207006250271377075715887248669922945023390280267209432197577748873710887409873695977414427358099540415239972239827064238631133770731580755714505511411070078718493365718353571205569856792806929816389964052061464988145106970293038174409963370359500207179631716444019813100292741036157203803918466969259680016720327904578312324741500371624851139820068930380045005771563401063516369985682864480494609554213162183576943040108912093048934879308443705199027210065684603690744159541885337928935610158878383885437288913607575638433667214877651717764239719382296226961819071794581681444286746845618703535219544904724046137477984954620743556751658359708780706211024693917788040980141301848773187483158358164899895404251541548282469304988816733721493569625999933251384917781672845438820041500692381291179379954225582669217725459478766146995451621389840040161341430588359753709643065279618133398094695266081801401342283096995522248347468651308421419350905866201171115354012327557395273841632878070139610376056792473285725510299697268103945079035751243696335342493990807561914943507535831989772526460276242505485948032932380842296586303878536787238700348272905862525969866287427836896004554469034510980161727625364030610942600660018486945106102293358128594750026877357335662622500470419448017767878517945464576281035040208299463969872558924106264484897836527236097848212007220461455923743781333565370475418968555519653355051783398512410946494099227922775587080079244836341244210997877897755974484201978703332233973684094292889792657736554881232154048784476765410322902255825842787028510130256748545495009579223954910214312999881576013153643070037782530095138960364554455546254366391656139566460650745753854195765722857456956416711682867018703154631145746655641562458241715067000073916113350178417859300358925540796234531008736876021753357743418522673924769075962099576869638631666543779827358531717982210597004383836853081695386641638932922362759315743025767955079445171134317159645782125708218794100681961551346743650236514817572984054871567882864909486145078709016651395566217447659333802014130902870217879669374688922181766773018688245008127759723826612365618104935963036534144690281625410462053070219468903410222510394778519833174949482761884342923103856246024159654981150562814931464445628039961852248178203029663935806610542613604013771479917415223074291096146397940133655387258985047285350988145872876199345048319992364450919980966192438836842439973830098066156553439536214809078331916464506676117557663047457216662340780483660558423645011197910793979087969423127847617515689836735232833239023070577348133995973416849910406700460668132790622957068916881221273139390147420317724128222669063126073322807497333102696761003275929073675754485448627486986560264616136503902148340793409529700755259443460476740612657064560987291398748554971772313454375077507737393700803923344914418258456933540656787425136370805291134794243581603062225157813018360736934157368020903388996891560975406900820286363680909756946930115623794111446732462883246247101427231725410494512917332650753520768257702394315584309421640143370285920122979839633363322165932614932265807377766285274258272129136773456195995244385433214796566377936207005601457924716829500938672240866950407154383080367790683396198341172236107845626255836443758235184603257653743973280943152211180845201135249368268912147102559289991024396693826815932611678783815877912873834622184365118793536847374595715439627387283427961525298682832553554933770854586690853827150914866989960780043922165005644955569877961637867865116161033489755973281464421524191205383241945467246367531951933612767529658680094246506581153659014367630948803629092871216880420453124616917017139151863450077028828847960619930811525953220788998914782672800834217412571698389746974258625822056045488061868450560501448137042774700929208019439007295836834769321434412571303675403372598804237730650953948229641232325741775700907796902400866712078326837771450700759145465619500221844973113295191943481213108262613699036348603934932588955897332945273274049344774084563914087978099690840206636327876099781343724358951848274096014684878276183357280285829287367883306767805429346593631906613692412542470672702229439088784246393227362921491723473302643453777576596709198859599059392350723443903903721975997793093256508226928047738318340517555296254852225255793590097322289166852338213045940175213599034037651062215266500978302132069080481666796897547485267375851443383559328488282496706373302030368440133066125746914129134299748979812254192391525018115130535028720160787142268250667675711996481518271403861910193948690973750961206962966038757954630564397644125942373966263172270587204492721928296839336659714781389046151447597068836330029566877726285159481591304686560834834421289683455829866081100011128253884416391764203385875603328924837488948029813029805076455780117971485032852094673665730551901121040605498332498766343650025573329906657399197205857098399974652711028642131234603633681545348027418275672490839073144771878245744574444892576707461838510936964858413937247095770564156650493197782633854561028199064167248492971683402525544937772153741690387022223456034343093494218396209553427215866358341137816264208836103567622041574610512932379570158804568321995600791295215846010420887402334108616862754124292235044535593801643982836191647951890516075348583260237488227637901022087885897612668556458501753816425809687189274668191804778168612966232115660002750125593997775210939003086694339741717215787229681414105118211565246658275674488511407768014638163370082563323120593281232450015168755704547174061506299287642380259584745725346604954023607718695955880213852849579565193089068076426596103383960771355996729672241146393533276619529964023239535284613901452019172823916565566172147879043403814396977153269797375520152354309023712721588342505706669050885806938935362041634465064964874868194074661448244430559100096408827511788071198450202331694611830979219717476988781794928021669450139803661850859851875501126495657493083498547727911177518609136783486929338274659669485407500142597896353052594231056258501895135099536748806689549010059864732401760381732064418334547788303975058765209279636972036805441447797719119660348000965260273687835964669871783543006384470399523496519405307290545879326193153220423158061148711156699972674322309380130587889366554504405846123560637625039335788525177239033040307376127466284551088133524048229220810148904489626391072927958757703342615596549892010228271814338947889090937277039007822732277037446999148842996911442644015024013511623956131229553272458642203835721008504076290622048055674963786575199971725636356559070157593033525638442523127862957368355872612854577421914180884247922277952591457421229995504216490766057499598724046123949777646251217186364862932435335148860528506957610171490736566805499206803589439050375023499268655625121884107559261701122176122890935095095057035968970848824542724855359056620103466313318581271083057352265435171502006742972891004947903298172647091522033795761726410310486102023673777161649781840849986391082285206760580510204010280869863496386579991243091269942683520349178358267973191710837256293208022114812320230980491459648322029420337632097693495839231345699433233652667265168548867434826912212191977145697025285894062715806950727451024029052366504110160925447260737824889513037463274873604155563503223233462407287975778324066650819461037443014488742878667956007926219318209530012888109981186665111453843909158787142442803503949070510890183515421370214734036716648457651736969517484793469278069951743305033566227322168080255930480813188649262663986928328391412444406900923292937350526380424873360690706467139745092792551624597212202559414087444496285023933942144792124713170072866580970107527673381567899524770556905258427025696684928607379488320777352517076073134052763580838587372496219374847508948483641157188049763130407260581307231277882050318571656279785183491687783208217148335522667785985246223227917011313193008118697695287822859183912016712100294904194061156636477076390969172289035326594275684660673514791302273569292266023378112663161841874904182301925072060341350479179795920849155597662674089838040140063232999139617393023789866659577797924533596762607458526329266190459972624712772578173885295653197390818104369306945950048487353962530102691566191072335372651855606489656992667230136419330034156473674157134962477383661981935407285662889965622599711223694212940438546177541715239648833191126856342921498975563900597842023803071995468221348731178664367578362955684067081601972258702692269826784527304258179626158216938913039869865143214905545204634912606778128394514367364381487147841420839628405162669003849547928631673848746988251079057378941581306464633212994037072022083953589560467714462985263610855449401415754957699979386584097144029005580789588110130195484724801311785687213017517762615260766996490439692215781677884804233477980591010745285237636860479422548403022871684252052403111062880000751856661136325853514422993689127509772756599551963259691124545704265967397423666769662511123658459081977071721129992552415791410694479116014151116945889395917296529401986509032816659777583367342597580942480629896986900598958460879398271627704303488373867627397340381542337311091551669980632555124747756813092855286323667295784539269192076837219739457217197718252949990822127440309679561062678890033292153579566816972183196005548870922788844949814080558682747081266738648551933132270553395652883634007265143912426181375260384092691458615709930408365907083961368645260212783184007833238297868792486605432565561108177560118406103103866411531450342958340440305155630650451159076726255253155118922219888033342654991744341872479429917059247934298870203361624058810422906167629516052664512820871609968810660068261812269795054293804016388839353644535482406918581112714006634640546863074370266225492877208375290855235712584347108685728735157985236473753245095082604221771206421119317937375705676467214174818589410335446558932403330568349188775791512107372961205204664561911313601082266024572342258961548441183196230049935174500022842436378483959516928700813980312767465172863901528201799847837619108595743215346412418442260996873775962441682738373560142263978211897041346278269829381700070142976330511329625931541791182335965310684630191109806750974749056619622191826847682657549653586669426215848357388291768709050042119876628634399946279049193155553696650690638607121641301476002465099722029759728302741736508112999018506206085963849097748498942063866079384739226945054274231025024357314622323979939278805090771549069209712496553654323819508769242782854791182787230197244517913285918836512248893572878889684972054502566359172795451398536998026296389349590217526855849751129846977086698389550747222652804021340283901451762948119028240302950063877579590064023596401094907559906283901734635186743632568318373464146513129326963465899611880315572163397723352738330058230000822166993712908771980885396196223109910333225292409537517384203481775410681934609044179529806764428926255823928056083016989098366974702653525543642283646908923243777950974454116395623793803805268761174590417323912113063243643407507177403093272372168175718641690440304515293585666397770499773021884478357240062001486053659689590627076471132443660183099466678376972683450414725218127477902137921208244044660806247934721840197009892261026887199140600358279712786075273153999366451017148624807743048211113291507007352200449334662214372264356273653035998477188173643471816791605936340257879126538491050917335448113584573675388730119767615240882158104930466025765143691325376552760906788125911546611645571634905393850829183941404337036049519382285788277711218529892747662005751288767642100973005483607391484969804630057427498026362691249255834848935710591344275694000202780132169007989481986666880104888025602230508455365101735386291177976918145146944185148494170244166417699045536602269975782887882917205337793782422532006328199008862732051709341609970101709771255245993775565595549641543599567509222839392231270255892437848508605530605335897787712244070425552059875518985807481896032955067037703194416539146202419297639709494718246654822364573390100491828906774640842669070891109410291591277100022884408192556412308100211947709439993694956097058324387644240297263138260841107487460481439718903165003026104338617777846355961642909613383815068737977608301230155640070271026701004343504901850725717019020231185861370834425380865667883153192552844821497819610107561105923395289664665706424260357316996898868005462223943830151957494029511772505353296528684853620092023078777422113876213290455027394076013419771145172384369762352040300161407940471944034490117435843891953400570929523039299387859982582709810045432357426800505968633985984085946329861623513603637070532998723704685469189031023515761292671975356458053272587961615674990370079201560680578200452256902669943678926224693411865785380309887011936476889442166159908821707742331235869252455084802890591445252818134192640648954576614936165443561920095210790908837922968791771383424577825317539028628168517501826097678323495701150558381213638371881378292194592311551984442107053857236079581040242542901061599165127833249865799509869006881740709580681895914652486333712671899579112573236476529806734014992359343085529987201951272337792456170370379969671964415443893507263182999888651593123927189921110405045260824460268222913647700146064814063219519048629411312047398680558620338984088126307885015836181508978774130362360254143185783744790900809790194347665506473876892526079239141437008831865689525598491747384016531372890657913025369845137846637623903464753040700018835076120587947200498184849630402530663036193144471453050835836019845752405156041409450639739144317769706310231483604874179255538613854998411062716679393713905593367846253224181153888929128533652912713393969283850502717717446051354663207036174029066221232743659707995926200389054686707521190006091697659308999198470959994379639486694074267805934635179841820457551092316222351702078510590643907764884808587842844380649403333355079520521876065051591923483218343376182857862678247006396297712247344326705402109785861988668050039486125887500094815154218926968397276860597169288244744327599871503085335265512956405403944557131216044905477192392868448717942319532488603605033610940271605671389210541292191412770845276162327902333216699708721262223819695954737381740000253664304675164407479718020261994343564406913859787662132344146116654771667422352628851065289160443278870870237518388345295869369382406330333262032220579622719935803124018156951330488063338618315178848215968712331797721058343018602980963230157456320302993391630135602038504131430174499023890804100902494548223187750384123062317202284488145905979627036798741583062784938667817706244555086829689589766684888596146148474353976717407472460250334029161942081038191067022565083124648660728979260193150495081629476669400975851352865201288585695222916239860353991318902501227500783319292983662222879011906612804458039799915248749351610600259682539401449011414927677124777448745181884899078725790497239174591390017038761127538436829849681087992877605912107190449427415658316555181703708767208412861736891170925568127460256002384398330770592100678816378273377432402489700852205721300166703451276931978464659198080524448115745753853900084366913457543593081119124855880549844380986647013640541712126249418607189807022612965524606731481083764926186153852787520998535743128087659358740714274289125010325421893704507009740077559391702311193902229318636684892512045380379112126011442661752139034005992287111000951944514955251448203295623426490575598976339958885229280166630230030687698443479711098275166369530578811020813298144104825859291419441835461264716719958100669730446732984612891283424644853820063120783673890043213446358965054807179312835959725528433662274871858684885811414356242588321470541112780764926267089663362028975455538073656127726372550855347056965443234206222334294680560002291717433901861078964068380480465342950299285600574054128148391502406487921374683262124452612018021603880637306471922468074256561050390773426913844718663915059572079653043364580667333688438534791143744439874546026563622670894104783261458066734742437125675556675073039767074210493862797449466128578569675974123043809472550857123012708830953874870857888962504615409402733308526651896976401190618186551488931077442367335490394320785313527496894226440119083369102776089089831016783972887554399648280893095804039588209617786477992037016870718465738174994424377731622782120168681510452305834111112277757432908235749240817971062195910773274107242740084174255861229711991746090770914476468454566985208159070265939171474354712540819263447906464913301352021157262237098396792272083731114364930456435227794486448337549735645401170792871475232945521485813349886454844081749666953763376137083507798133202690616822370772361911873571417990128196492441340077454546680520014305917731886365384841835106449982586199046118826898476245443949017599514792818516054572923902033016883831795985502150464318920933300912617804273746376870803434207523636105803540473002548060751060416413402567997040990888078969194169616966280858848074958536942708823617881437385283639008783652500578590369239614031425420599357934783571978104535598518817414036311112442721208065121171973673670268461278947512777796764771123170789378813961980135789423095670068814609550629801864634882696919282215497992432925068597236333083582006001477499082695307506222854772312654680200165749717401108538629825104152176079061621600675305734185544466507429717604267259251818021515611975940620826530952207189225972293896154051026701135147717696197621217028779671554355865270764922929806564437977833565492388145993509258666134350264460137554373014941705490625895076532783586853905468639452187798867052105550515754463325090860232495997595269121945172576616951787454440590720180989401502328883846615589114272352049881663021352515125798169388856395137665471238957302574293958163536667399432135917637441071005729678135824334580241786349156064513448819841652508797655957020742331761610749553115955306607709359723966204194896346934177619571303984280662200291079570004955484310557615787918389730549941215460217991148636108852751101010856806161841795462676742620660362871693139005885277662326341075228601836816069123275693380781147669473666737741343109571575457068081109084477215837063813752769444418027608021547874684759767062574668891728904637630490580578198872169427120309355901436100018119241552216927015165226384004912494343507262357899874655417051570013121404388766965590242790206112185347184706012122689675400429775695133661839948679588730078506511486737321155042955077712525496415767803220665362422403265904644397275486467601558715723278708045435735202306729179488839071472098873234144824038735769244815686789841708061991384380778061548065934315986946419353486864654155187103243021726865882430718896848688779108302359677728483582354596199927265315179062802829888416139075230101695555806126105008292466492324261804569218566681870849352378273293531478649610845979306747475105297766554480606540897022383643764361285250243023653906433487962344631397004188621971060336831565741739887734627704430152199485595571889320262434616854633056744623539972346386498043953995898053790660157668094757044267163738203980517977036997862723118924560146780142521440719073489377553926116538895453292483822034764696977408189551437645624630187873548347047280496885321432629564481718954889157272231607217793650411220294035960866728844538577292042230877175454721035492918316029422035028658151834029720299696276658744919978360757865444917996719412865232072110072865805103905382457686383509595124174682067597358814798284316670089925642979977571929103397036074752608572696047211007978248635457584763930662140198831074264929191754090718606535823433701939521040506254909978575112979870366581032160684161147517049116675335886777721953376780245665029981381853404189679166954152790178010178535526980880317183223208950673803062969139979106222300069276023198350435440192568855594437153380794361966814653081780327447590599621030700102096958268967868270077304492232353253811019269576883166712393007432039207467175243909514075076665470246602782222987709106000681310499269739842514957591471099613330003674926478317844982013869041313521688772374331321663519410481875855580437715732645172490986742300434003727796249809022045576976617876899663241281859965034098779485490256545531541077156465008695981275461102359031117911627068548139237793373300788048098809119009116874899943338378424480007770148924565173062502509094221141994836157087084225442677438494542123322776281833045050299774637676236785814093686545244705276292275821352746271015844177872199846124471515566637303268580108975775968963406477457887092026209237231077599579156516348145742581355304162179066705446545742331043155478112415122392065412573794876074781042607505264444407666268152627982812685003127524102442073963860139955114734026374953590454948943784323001908144426354505010596124000931201862089724007733864556893030763493351036638008554637183168841931284728717224269613599188493720787623809258601298681237318730069424706795720796631243786299933039544821955476255456381592477427045579110736835197014214680602403333900158711839547565832736759688537456464859610965900573391845090799789053726940692277748158202199139497050703439039476452057560227271952108521401705332765229248545547775152444064221709620182664271271126212597468991080807290156343919180821021213418577461088920509650869077127109060950549530002144863988731007517575425294843986404384936240956609904074760003004028458321276419905596804798486373298563579263760319631508002175428338444496992855738743294148550825871737581014929493536765529080553815444997116802989290785329868615068912098928293276790750392219524266128237480696465684704992934929157489043447629112630065371469565567817169822104861485135294533841503413384224191031594832511380790737576906506457101347687889016710752968331811716930350643508444152883001100270658774081595994947246469604079176516809933860861060512919847194780005241570086113046004479659995292904943800804429032194005642877877021577159461564424602941306138107691783704075112508007049194392122322066990512263055139212994820442308643990766029923928802064413857140056732367572571509504256705266456582727203274870399148641034214566037827743928245362493232745499553618846411642141382893727670742630022516815528362345041771002161353119970483597434310490798740343734596853129734447516572248149575798609388480878021894288429766260942976788699747178916514427469550818995161808724620966269585453585105835913491397228585792687187468807616589285039515523113914104985081621544727083720946820055710380815471320427190999166195712589845127156805552560655685998142936873058484910527035749211658669183293398632522018095211460132399547950593809838327597925612136246930168421080030091118197056117779232586607975215795544012290474056208131946149961218726855675942455990167092422764063742177730724817828965783916726450060805899829131099397080706294359833118737044774810944473044037120431774900627108478389345247830385882180569419799939318408705863274937699989402455151509084258826093529952594871459696736473961921500602800689340969629663541625078539149885243990476351148452328416523654793018444298932296967438889510769675417244317683464281896711978590242467791237955038429845953574989304171043736144564548045032588557300843858865338672749742329874528533976338658108635829530319656104137367161719997842410867523924613927880399695170466509412284478183147451002034345894159083788830069132807368088171636903602288247249692631400864801257260728807069266518395408425709898942351341577397441554538836772274141708752264745699763226977811521417477388865348301376973943119439039688757277534596860510591411599972229155422436765545814689563583660137983576556476498780699789262541392197037439482249104164136453205264366678147832342025240178689177340761055889403910710078687457147293872997638435134976351376331071353481238087080732509169969715190366730456032340823958891486064593373229391168101585460664665986074448116398009126225486837474135549636952886503127136112855931435574907833271788583932437345295960439553253510179616721005749115052039782212865378714357432022059271656974209391106148916317153604265607378644148575948130372483146846711965107476566108867640966921264925596410249141114329173565106557920948893489269071831208905677130129769067950492782806807679981680284867998244199530065932341572443974234112134243827950026606744851648389599796134781509035820508855144359308301543382298983728177493687447052537871476571088113175211226685343323680578121009689496650667792517033921536349333511908843830455591727569924206520676283562746152904271481217859399827558239806634933507244592646185591631762358748960212597202593698342204467009403554942569056410771406455177287015126458148044725274444334346342586158147765315448533819214575348666836797318228338571987904893519985847846978142255313904738669453981573094111045376925769203405674951735737497175722646669002746857327824427756142231153728523829210518499059041738308677202586382895175905545038517040943932356425521698464926030185727767666129629541174809303779112190855660000577666336605912744546340704115742143643920523394045050654835818389908241022205643162346006453650852408042370464767408405540316705616278764716810562829207845698490418579628391763901009803279138030228794622007717671710755842710156246316986208821635767187814203594116048714771860589980051361718276175954350346097344644352758391383116034853882252268080160573293531976557888093045176661069196979408835018432160283302045526657847884988418767778743950795542533320364196727249630924404728102719329229608819813628748926154708088380713531041406275772804269550058252655736921238845890461039116732214806983166024912924713516228426291827738418498844209106012027947729711874982417321973045291711740890211970710832280517161650617517231770256183753945247947020212611336670983836881115211196681850856837458448617241464378418344080651508767647720562032590775495035030593589256638813563556116852598348664800320179697522252814477546671847659484228710313794740114268159115566231921709419112726694987500328584490003577325959568457883387727827442464769006961593718830392584325755291522683724126988434903215863579721590200318154842240743044739310254435691741437360673850134346438378859053741006411075721154804059513655433528460178364086678405551350993180312732958895247835429360629196114091513697080150489378102662937970962408644618543985736631604933891464223027496886806648798433566579455802842420203869229380514293838406487167796183752692435095273137434097957470960238519520171907916945735123679075642479508555634403485365265736410649001789744051377584084760991333627446670403475674662509157593908948490050458076059559695465526639428900400541113502530963887682817517011702616449920593619468188621637300032929496455650252070403328706171065220839399416261301317788314596868829501140537672701144194240377861539011347975996407520980319969703685551865594485976166740562274793102429596896577719473864591006967647373327470999260635946118941959167104298136511362113254134322323943522765294396969645708900716699674070277583662819211994624044902887187346691223905004743016917214277982379464647802072147392027048639408675063442200925016902655590544316114960670121356431544940788864869365273533753623009933738347875937759150989881264381614977269139592834922314667025449227918265950827350933251462206744370471508737519698611788380616065579088630984850329079662858412605257102048058100776575089678277558830635842186285100580704050955326186691851663566763186599433987455731921759990963774346757220218835862813043480499276982853897642811030732110871366242759209446136648374976212074789250293784270708927537196832548243224367434972599074822457117669860406536277698110982660129410714401065220747845421208468241389160104094972562036690577690587407117633867236510225547706427010652945540441904798697883829559396592196089783734994177894816085839683239889661977934803379621969456870982318829391769496198899223660318926560036963743184029730622018658296399094030498236620590348759229861745122421172379567685400685316716719417054031547575776430124664879280575962116548927818056645008727874059161425433442824461905729678093948484469921198144171787777706311387370489627177063666789112432999526317310000749720846026186739104272799485109079519841183213825473382766596752617666125932836099626119890604158655206526145762078799279967504805153542733146340629829114681088555390604840161574316944249818396606644988980483608689996640519556953652395595289953738466981266818951930607124838850339659246188351904325901377810945066283149875813739068342245345182425261443479133617459012822387866592022302044487385053521343230773357537712684351092307191757459582187585790551172997349208133236129271485871724637261073637472971397604232894374896580052418922312647548552452170761580837067920707849023645347340457836640825891032971049393336160680352619888043840698790183743092110902461084927970596919991567106167080249368070580251752135937167791570959561469360259600324247127059131367743804175803332819864865021267287867449520465101230741360688799555674816694566155518149286297093476669806420141472607094692102889537401733273704093614111301130678639664599116659313526645006205113789502740069244497643506327375410152211067896802844427211295774375310701222064876986261382111115545731245352551670258623928957788392133736781959493475330001768768206771004601731829574116507719204237507359913743053102180368094110358504851030106775379358210242534953215346064303016941015877184093573642634946580365049251128502691174050702094890777467596816522071197204657607270103441851602524480416607776587059283206640229812642187810038485439715548081406290116401964770964532232792544267119968244961266145409267684067261480516569943746921251505124146441999906397542024216252762483650762686838926572118429365505390265168613514501647939126601708042892145170985892318184364955962716087236128720652477747246851138632445399610061763524679127346559205662362068770350521243080138942352136197590331696340168914073997329721135378920364146987842618958500265949950823049904042999350342724481380793907467096092948474151144070169237669729039833104653842192346972710721214618050953310557115495241089026907404790415832440430409497513013739079788583159915006823092227679675456979231775721263117608107661171210842421405642221411092079569410413910432623402542335732097138234810381936418478118402583182322293675535848496304367641040170222350519361290205904132370472698892461713850952319454454870454137525788882713918931413773343940709474109969469500485963143911142178256733109278020054671583810669952433306607459909568279426447139309674936973300196806854213267716079747011141088909206079711867678873820574913972607934923411854663227522781194527878089388099360752641654510626728643345703069054964289240591635638521138235595295916689639816554263772213364281295267203800684113612839980737224927350454882832991582134078617053881818630331922936062894676361408994223999207479609820747681825096038787676001116388375569758064857264826867704503110381355474650468230559987868575449843071748250114482908295482232106481818204852884923679272523358102599865712506024240792238039895183143669263903569848971949715184677992944584313652257779491930853541065724131710615701175773170035755603882429493198735670462745262642416118611393721182928087334888036811279121131430102179594610076869503618460704688282521771808986854335573710135804366698925291917724727598042156745366938080512353789738211824876674460161295348641061685004511021992087866892520254945284782467088878902966907908478620793958910719649213252516623923758107418967349084279688962970766716922908696456219983365327053352577496571578345331366393358250800831644602079335039160600371099345040549646609273245544988152778318918700777696256712789686510854041217518514872420872671878824794790504464608106986755882188334734266328908907372681378777270627154714250333962555350252475531451893728412928961387786669805283229328275388188632654876320472266978461356119263318402057777772999254638643038317156554115094925952514950630441261203103322229292095266389907626137394748324757722443660755274567910700784415647034455577707612028117390397810282777512493152696866873189140248158165879715801834098253176299853604494882989723604301335921513817019958395628698538856051982259610577250184676507911646838564696459678718314023152986281695465370699406240331358964959421996583312436827702583832270323376500457620690811937653686721558534576211926638278322507734171636857908984562700114360247846936160909064223073977813286540358964355503044762936326923311706235182981001774835980525318810608123783351852752691333043361444326015340051686414530592228155071654463183235205068823696702214364008132372798046411934442916631838017166246821693352121358853369933742397392077886384996772640910699564234380449571189045921158272284309789250537535353080101870428362091527783382803579973453135085260095854464040675423143190582595843643644342866883495933076216926877299248310825862837093768263466349714602587586044091659927869990641492429289926782319745410437455278643624816556651866479231770139480274938069020151088636230068297345203562218376101692709253133003262072321959186803681382837831187489880289837675635874266196208442912239968132842779293146174011558755694076024863548918997803345071709770713599822402709732927040482387788317384426742241948156816384878143992499431448179413614527323057570267274845068092313164285900062147733814589341294987629196141370851201815151231431820181306018655175908551398707056383084170389815494028005878074261723612279290299250839623086600387251742976048087568699933085397224641703284353038660698452945821847824614862736993325533393032399413838131802892722185798640589831239556882612323479231015402749470805337367701606907376594597550223845843393120976555493539042493231792112201601771838621436904088916030762078171620925407468950389512825728712931828544595875234749956861456499589788015957031445789074212998579573414533998141525601300416606707646674375700383312625361932059450827871572708066655568161599960828312051019822122128974693814449335260528169072132124273143281698085964619800890167249057027395176230496132157619974909871016211817906245652309693131951167676790096007661263222808381403178777614583088396046259116177982597501416536544502954910894378451866041759474285170240665461967269320356285945787734638731166316168788760877212098592525209183152946640314206291622911783027495619058186804302005220857913535223772515718389823218030548541017629960343781579035066171736458465658478536844615569470827124844534912243535892438481661946653234479423224771254689953002201140374887810881569223126421874704850270193206431308048418340683435419619878767677470861044933798010804898508773528162951627807695700058337392683499064942072988879000747020420452034755258030583578159655818222710883806577462457544637226540102904740073641681902382621191850028135064158781008650625600265402911529471581676295264287242210793644784163061576051806908344529445312053675058177412890870623738837717575728832693672767954398475749888224567224253331826191197502344381789151505421890629680426141481406882876339873360104308345528392207414096859291720926679145752025671579235813217752216593037911854216845963064654823900544250379977643441249289347802955215323701739827212276239881964082838260953250241794294763950212029623641157055413209739995784298282605441669735174721566577402266368330612671158193875674343499723582053664566003955494117472914909157992352230560522019023169113225370180729922719878306465950024874586423564947065017719163034189085572148135007593102914688331876943964182653853402074288624223010274560028208399502492024201161475814313079340114651792453012888286788085303041281356588407060750889439693099348281458177250422572880319967511738818134490961348999743170231786973560925526903011438989091849304357095224206591431829377635680700230101121733225962306869327071180128014753157101207337867589729530556699899634600552363067896470723214117188938107691741851876426292798034531306351189290047745183546046497033643496227593217705073099838852740800088029024975281213260776158976506564741296363966069346419880517263654145595687421785469838884619732940608798164957133566172441430831666107685443494554713913084899393565954273724809474016413347773085120764096997653159112107150091015179235146140348512659127521713687526135185395448756696893964354699166175466865305467658493584817408046687106102562139994157838183045874384699398152582434321790263869031943870306753986113407425701594263663465456029523625685946699899498147800466286438733153748137286146010875975244298013808835320562739889234528750013708887567145241493578937327099396531608747015254074382095868988942666822680212035709823149240977701671957442897574952999919352242206302220930440905596907754826946384520137947293574353459735946449135643539868418759023778793342448901794886642221976750894599777787466510818157521980991352199390644134043636693580986948553193873788488086662899777636726028260849095368706877892006667572350780493471977695340773789284777536660386364669238986879309931739790082100423348592176035101175383915817089144665747277340918934059353688275980393495918997799041892544598060633553790899840535815523843098540747725963727234325442461369541165879333730538950613159998921310382583159607344939935740663182252950927540051258488275382361669013733181468554555029533757749961191217392761861626800586112675424040546255371840612815523381804258861431117975782840793672302329085491712497942985425934037696529361491772034841427132961330082726702282272259791809759401897096419865680804479991261991251650282859653347010223215266388555201612687291700547261675674995719308007522956642349161584353020507458172265757296436992091553623441813953004380271422585914898089872881440132133040508687814562431843828026534956627243080375868942982042816106270306333058289329712488916149011270211008039142466988418312068107347438351945860543657635239001984473994130039612167397788487422725621993593983667004379706462291379620699708772251613927159585455216460212747274443272440507388561339076684953292405310002015828563888826457570956820494814360545278923114873986195107776262715565288737528990585048457889891802336560362043937775917339840531878353424498948764165012380791260972462852977746184781136082895841854727241917692217859949382949997464973870304934598352796886738095347287145921481932731939631770268336408689136802227621262168689307510253764313499893121681199841688161159438690820800722243759635538356415234555051596041207961200079033099011811450731571977171439262593184709890372466092972684122747951018627677856922650106714680934439108760349981043720516798900976856088931793152109528520292187143551837902364411184800630264328452910734156902525291618189235156644647936098508431987748818108190643937677033777602996222965282877118553612851428144159996608565130333443433474886525651138395931584883154076398798003587397365882424960571389593708159056880052655720194246415197638618414804794589133005193773418549793443555518432075138878658369083026155387467831509735492798013415751303577558219639468086357992327891328302463157518551629524333957377738936355467980529038918659179185311115437970616850338632809105263099027371429137552904915801442648029773910072844246514914788609846282302184544845114830670339366136054986798428916912717290462122295560322517715823344052038793085056766054880877022658429450100321430296471565400791434529268062148817761606751633168681915936903865516420421873620495472213116554131219730958670902475092899011232430469282371132510992020966411653342405290372292778126522442982581711140031966774475817410713721682962746965078090725578913967940175137859720705395918097094904722371147876534173690405422749284785275292546086581326759529363407077864657285035134771021168933351147961252811934289654410419225706476354157845594479025973102683525421332635592724847455766686161447917197549867435652886146185662129306956385339654928902771529275752020889585145977834040175508997765486746342206028453681159052356153374631734896133033698242481582036565186976341208857503734519523539717444734692626518554066035542453679732375270493424790578638189830516580610209497948146816013308896533568495334437194070422111442089436796229421745073568850133577390411269739081797899613123424755014256951455737694665770080706466818589948588711126279679116778501293483667600493465995708536574369539639931984448002147183165943297943992155280098592667800969307299627077171073499498695966407405851623531477080512166472619543732919412427084307126121464333801294541921177273139229392897940867878226140363054551167027689398945476640368725523560207276597877770936671602576512193500314734906733049022676707887335527865171874330780502864291100142391306084134501259067337606416713192918226739046391586656699650746729922357591599237596167442886544530142564304470282942357893821319957876341039357323647855588629723806134721461368395284160991872841207682557341285962563678579587401020210550079458283658873163962238104913908831736089189308087662203557152646304235589868156895330292823829345487174992446222299466580779174167358167397813714825927999818495514986512945174742415904819880464983380042865177656553327488843630857716065510659143846905610142286571735115844088873494209863276423496050646188975600685858590876371729050301048012528579040189831187201275796500962958366654590069192219860781402130938563765510009976431993839747465217197807166983083095079545273768507817066103462421401492732015560733170911619948142966164769605072262624056156119552358393308551868443788510603303330107525010995976214503035900195917768476632086570278746790214240823038449287565019455273476438839976035473684638458364677971568282829072524305946283196060113606154017883522811124145010833664081391911095329486458904576599266640186525107940181330235825416724819979671663583329750723746322123795396495292022117907211166338924270016657214996102870618152429864799976946532922259136076148366296857647668178903635707862086780058777290254801048686076449109312772147942077038817377338328200133701138992390476059707015445553884462347798358479835285724921452189287592787127597739688846951327355688050605022831915238145719146267956218315374284381384708072638951602545371869338934447686191052626107777128762149305085002588873326166997971650116185042554284090592507413978738964283952611174299845134585786448082473316461315242237215653532850072579059820963185647787636516144437435083140035267843203088835529638068021114215676841704962717722419589566985381517426714793059253424694954092132068377054392400794219346204145435954327632918875231657337453302192270765945305546805382361769400173593214336801456925435808741577811743387929617278249820573866454414360758624956879023233370786463098601969542746814631870292527074758779073788596885595697977155582159384022532942391920954462969138286577242850100762239736189599699994361020187252396948314330603114097156690674816358646461755147191082355495752249715979717379244379443533292518956182491844424897173659163207100081653578720195471255095397406392000420560919514637393796111518701717180758635723609474318711923050183982595732907563576026968060195926364504288434298016055732650444406355003984637992997457498270046044216684953789204209815493186805863573325544355751681394104769307591297485645182095508841336145487441668983143599761080415132814091656467534621379160804144108530282852881919783553356853233080536281811137464546372844841432345158672329574013864400148980605637871668647205710476027081030397675848721857531988686915021537231485368481208439568527183436027655806993619261814271440521969136769654252741392152392500605314432001497787881972059041567183542149509328932439657529862343182318902261555827874140608290108068141958409440674554940350427005022960986737948842614987896601684018078917146010969805455299701682134599915012431283041898424022001679972175897860259607235105078911032996480803572659266626166535290334309305627664388415086320813351379605855236345565659292342872081579761307551873581951847432269678679873730299750048129610319149225660422954041700391229906336010458149898327619912641548838837904283098595656512285664968303654182546213530041505677514049813778919289664925641516438284458441375011309299327398075441089771970762703838704490154610226192101895930375103886365427360905070311764670768004293770843488698576789698359441720632514447813297040453265094559525731167743513436414416976943255766584072893033397306456798595703709002926688386077359490834133284727016985780860919716819805556563188495125980423943637901219730454921716190451160724393381286441174325838187724249599699839764882301214598564559347196291235479194171494024211079552028556820501749541972460744366087324430217720306171886206622029936491893373340192309590127132686646569694481345957795221879430343791398488898359880314430847553907165061101125232480833522538649120063499871765467146318666374358769065058822267216440266894961366370127714744846152224244967919232562193925762956095516546592129094886791375400112452842806633305330114332872117696562899434241791986479820535879028051841993797717321723239430872513507084409562389020437667857445692342866867691265425968974609666814788725389094425428344103310740095496897507950671351570691532898482300597862607094105177032087343471112779659825702266076245278634534224721225469998765678541082094886391340342104173917901652557318641998410997222524914227514929149347477028359611476705555556483656435261459085108413222518500570840297139800058308782667545295672278379795368542924437767247610747530177825044964219617561106508681869728830282026707650456966641602211341199896806226531524120607421895374562753716798432986754891907710389375641504424575892576605317345922757372183433366933694196886118168955169647266493025200716845493148352796370564252387857028768734805524244583995631358316362878465723382723898276576191665853973588051112813510901217206449673722947283179426243538212290133926312650131026273661745578616130400474390173564670704948292763147758105316079050377141458938745950863097477127842727596994523207501751678987965107436152868701390981957327657276741350489992452648306490471473203950904434722022391569368897009004678071091831808578109805962738343382388445130509849603792984136322266481148992269748320338270540555644044823718554272140982420852213950853638314194386656593943004116846423380446654666320097083688245619735665941246333807193629116063779014707250358449485268955743538951375053551087664720339826041342925316422972340878545448063543892698692263738182210053520798051469150099604827990028489049196182754022161290547974148059160315445680204841937423618637087507494423684719747177373154305997873362864526879548216152060318774124063076381181429572525019475834952714513197148814769358499687354440529506761857178887687909163020695785908997826632863746725443547498287127862125055359887466633583385251096849901067522123370457079555794850991653959418964399187625508946370001272122438165805230800653886042119617776408610544246277163736270128090632328689249336237195377262992046165866104717052973063539239841114101422981515831550875722983036620864053968584472831131071998919724074151621708570900672290119579969671563052425527425559443221074450809416927330020299824826862508706306486307932302829266985358827036055828181756241898458500162939174222267229440574107532408873574308717158069806907375210935820399623385975973007609019171565239590465114603319494295885395860053451755594442778206452599236833713806212527295733697052726134033348288723081690220759509582024624479741328860393245961452873631199944562112752262239152314016429120047096133740095315498074003571455307524339375609457231747625445408933887691668679827175783681928452375426919365904660522659394032215881760324807150110703905125384975144472081453513832061221901909842454109210709360149721489738137223620929610471336201138490235276047615075626083322013492900028754964655993193927322975851425480974406996180763664682197629135660562817471832405548831693628110896361996827014452657154180755209034772822466224246687769967514865189915053837031432111628417477724029845531281268012519463753375435635584820881441546896553178998521802424054929437791735880890536550288882190366535176951076276441369850656313544494827004591505856703122274012651166803089134283427946740328084400544451261668914465975102737137523034077180630474067387531537744158544105367000679320905732860025964477669886547713239802503784578895316443635917047066641848396135507252362617333696755462235083548127294969789764974429463271500037185467749873093372085585131984094145486317937763438859448847148326034369127447311931297933543057379550086985507873377976061595144622019058064342294255509848610860969937760803979689940677166560152630808197663034908696592409524614247973017613111717351546184964772708619065648762403647539593891190320733189129295605169791930352344227730774081575231498163084214301457690009950494309298705638130043481290986982266328685186116295551090363614532783003587528221690087167022265643183127864789354061970589452482144523999774817790321472963341813388492693346909539859056408635384196730831985076781654241120056566500533988418887523741193796000819264223435973648615153849793717021742849632598982362588025239605313300176876506033662615095340044595418312016606508875532503638438095313600196924021048881819316208933311512680391555992184249912605882677470751998054720112820005275892485981643895463239217393932693890003567438462470447146799843620760091584924243681338336484462580181647889070547127763857027916711204889138167644025058213490176267297288049871699931222097988758492136064655923818120712056989940585066159949451862786153742881068621082012901328067923162689452368625637241444237851124219285808261344307361456042996597761890988616370385714070905164081489650393903855343234331617677670916251543492528544669491547167487424311425642612416148326915995929648325496841872089787859398048962751379634477833339407334416845933797741116038334727848732869301494541431040818480134246520281430824848128498237425443085875487118460885708589585730467492301505922375888505138660126516498466020939396864121599306938651400342322089496913611769140272449934858902082320110045326312352643454363585324342619413761054987993654658737121810681141807245237117194923696626425109453750340104034649814500755242491213878623830161164846199106414002895257666677862474570874559972643603682454458413604200897912518546873202768123071594474316713378928089060480163660502403366887692994970080776739616125731132776435812779680451963985978132087707035303582792123533726571311434776058715338652176231308942839212811623265283238938758767289348951354705487865310383395419633601537849461558196394267758195559954013813866755950324585415840464032483232705440587258354180865757679901398648422971842627316552198680127094402507659629725627274238161310128429429464323117788784756661978761551898547075554759179127268835633252992549399214759635755447842991616770708312545086390152804933859277446493428371994883297680525469002587961132478888986506592354182074396362753225908712057655793115616879058680448474648578691429991708712542460838518775525863666788844537163287826876728648270768440572894616674882840012074740759252042299448374961856904285842956920933248372114104930661269881879226737022065788965213788796151284802387249625672362489272737263305410339089641828619396753675449590640480551627133031954889938983613564239637222944706841070819803041259239271647598817394198249522878943036202608339606321479738444348837482421620062619233965545250248337799723326029339059373163214251748357145983145295327043746218023896850026779215657827143229158690220061387648000141217470156426731870730667339397301859162564371510012315233161466954403120835276766738062814573582266874230541843599721356833630285323965977607028930449213959671588539443255676257200249773671964710767016809550883700640059505428679977043352399444669417725336970090382199738311366218680089730531642787672437673750991101980508470964826930034480896545087464776270295889704420826751126356643887668649960145029877681296644750119345464397127484951025945931027408480715359806044018619162618578893913303624210513735964014150509802635311903224842646158217062117738304970449367405040760818612433460122357211623910096196342148961919752065286034343344788484074728346280091092780939687755916523398111156958693575846629522800638778821001200473266826085944612791640317397735232098304285017908977251907234772861133799942120147292131924246642451901198296218658282477235962538465340908081574218163418315341380313021315942614857299473608755145422028816090233249642602260842633482012672185114099808459158779584449042769888675691573361746350585657755598310175423525719242545447799069385215508552546312642347935129757272314477167603008109655826901319186900233390986140046105997824697461734604625034347754234931546620780911285172977440152047649549754278879344301927210743488527778153118362456079153512259742774869578669709032843469584547050085407850892700997161547964947536411989024338258696428638763779652534301982722410577427472950222846259859597925535682107087462015862222849989186446143462420543374366084925741562387047448211311886350939975527891663148955265900604405757528270769483341850011385448851544000065909383477084520101464324989182075826061807178149650407265719302130020554408503379600255221466041323472358333081336826052163351896854907473263446195435929840877925986458341775347740826034418085312838423929243661723353129355831379085059233740144937607103210810328479365352455611790136325480323731702570616470053333412705614612757841739538986707864382588881517310756118034438769159152982124484939679100650876185622689765656386848403322939085736787612991846953192519649320820600532161122776991326230635944096120586249633055460545643565312960979682081807661208755715659365528855590836633276631178618537472961755239896376402610376531151780898527380639821205098414093369481455656056276461554525962704271546979733502417697942593920536984542461885418319963898986827366061117894917980910957079004690982000961258487426417326047944947497211579634316002875130608521186695662192520586797277953213756310471022546194602899359946562457497779151467799685871836238474976004152095565649915177226042585440000397162873855029415539950795284974449879137144690100660129237009490987152113513391252965259922431455819449586312455492720914169642609899685855346548326088154320281995298046836230859870943783297540236107458792782780373007701486490222431210547247271794953011120267508555003967034205425042171069697769781176449837585180274066035335752654649606772119607054476776232793198324128048107813281394847813675977493000280440127265994129099758661083819817840729879768495862160052710068384886648897989120440319844514512283520746618727999993631182470049609848665208098547094481709084845322749178468871745633826205534288731889551503233475488522821348386441637537220049001886979782828339192518947608777041115434695756233185192605793488030151152464275939468917988761710695978761219434675313748112071568677269350531239197616212462317855731504071785726220752279888896365388437106622798809817312740693534523305831823861084294647157210771773143390086076026758856718970966491285140907175054903986363814241404938184751069462409080609983120635240817654246441225022239708698407411889808830559856899343165188211389631188874727079380878084521747513452400598938756222222202853214631601440753111484217086821110445859386713832483232592949306513875272161978759194494578930376089364916430181967962095667503038689145010921564612161881741231111157926901913764075832256817803925565768397892610252038187743097020592643458910587897163271365243025377689027182036461883956872452607168868159188690624005492499664145170158418873836542065163607804379154128564455251535813194975107642356537289535873182947044691170219102797920434984773893810809697180480681175609753256169782201209107950340649392057412744048415351225337763425059278636132022953101136958404224812026453098764810231004972847701897558720303854567886040318731968041323329537160499065167587193501533993558074178416787862248450344217083856682060686409052457958824252643063097205191655905844681800173571302445830822022277859327985740546509345609189276492245795189701082463527735521135638158058190362584942084958913164813104691384706997036234145687550208820542798233313303497902005835213032690855679451375350806730046090762691897160458499153614643821629748870759178450933739326942111356778204004339563568423646861740674082795597899739515872218069796324724528442133392359743114651012341614378979502980978225824938802511663355997080954703434748016431293385029435381738590178510818684314039544495852267033050194453856772735904779929882905173915217047503903481100343711657839956954341063727071510342224190592754097014892755519974105374853297908268028450231818587492833016842945690546286388862667169821342481614683166979690846693444872154187365611362629752926566831872769438770086347751400527551997165257214196569631181499128529835063051555678886335508978659915860015267561085457634926570626061408970099186855331391420009189165648774382200485155142980518500343017964741433569608505401401018239410406635736860320033476817612179971787905622078928138412748368607983755882107320829779278037725062839496194543425750347890248360061115128975569886201358490763282359055394940231257735226756151759762072983634761696734383993791610345040441050758930051015100428252589844938017966481133585211364406391853839688014838232205368344622952101026834556585451197680310076842912812804422624462672473307534644552883867874209748334671864871560708667246830275108471634677123093444194238626998369553553222021962241454339195868142691538613951498128139668084214960931036337998312834138638410379209085115751114879310789898803148035085250671368535214000773430411408449108143361465885432165728580445289647682772159383245419059886708526437755969828278978552802536050857582594951316584557296888965390805751365872788964786341132191798374546942203904424201774018214113938141571514381256881716876928927131611742560909546563660076646326858997529558500563920325332340952479643665040396845527960398729008580586239165509932098590477569674613808963046445325127952876504904192752100701031855253256863357453438505696378561130112437431412221974006001925169549555225663841337691701288135340642988701918370476130880834434826950494978689390643416019605181987581727373298134528182647010316232733131817394058808772407299374959202670074594879685165706523894780851694723540840005171301788752579231628334424942393924327253833314862837676303241890808284040288273416833649793087366307983665100122552125131569825873986281953046531415982645458856738992012230465286959816988438884024049864722726856103020045160031971842518542294639414946019126201121336896059045245865106793657550518763586895471517018941026497107394628725239847751676797779879202335819901516212891711173375482032184148665503112136970228074829713723692610418350190223413665173185418409682433364912039938533944458918260297017861981270655862177643061862786600224192306581138243587327619257102906061578867263715201663192446686074425069030839668210164650333497538555520219239060619641906173035770889759848272035169062268988654949914427040569252908524503475085230007389861609901436518700811453977296276183556462456108619176865495621827665551846428240924072086999092988475991604550519804907940282574651551227636849285014490420729681657809082247475015400171145588260031750276571639830708385253881088572432693423249434961165812192717239306299617901630502679517995556165350535677304299934137222377485115297575390595486358289640658985807667854333969924890915700380118908487476608522562213066592259818355317876119833274753480146406172865058184614937870486791861662265096337495892030199727066055268242800617231182804706409927848428153418613638737419291352339232254033857059639393582359984991692499870794771315917702528720777837319260659886771295363974598233109132196389645523057134566002512797654827649046649815602932335518186756099332535336475143384741216205873137309841409307706773838098583659491951966685175211511916609043418807768898571223529090822014389984003201992991657648785812177326477150289257980836593428521073183960027686269748870993583082146741142770818967610678973049115396469578692273231646872816053382206142423077765833473364559502331048307717619266910637720297188078928650610979964772127785551423111947296664417152379520266390699046577591040070498856779483414178791047366654345203461084076893041617993787920800592456304821443364829676278384936438931356028299474764154883374328438512831563287301683197978723279781278527934145098349731734233355393214013427495466247391781224777989500565928235023227973455570083761501131408765560346762843297960505077163932324920089970444327840031856523643332181464059277203231355832927990555891214590442176179152397189761263728022822834571549112957357284550105795889712938360841750941394639291984994926532016043419662377477537494438419663787413067650593044396616811899519302878650987152993052561727390738665706260262013834863017012895654475306761925133809015026641693845338384352053434889149452313548081844397335583079731386635314664284069253025343245922041607859239750771309928363407398361616304200712674357920869004208993078915121375691704338898415536806558411255924295197137099528230224839986211738904863952458577146176870845413745177462006602267988734583653808013315900789760568246882738739781182924454658861547206410961275190073769254506180888846015528799504605243719012075488895449905988346124210331369830748885603399307482985024285905071889076912895511426078212598689265240835859407161354693561996573258886627309380312457842076766192925971415221381088559900348312414804406130896970310487771451735895990435317056477135704178039174249196587617668357619226420214573354504911078119873070470950745008012300496070050805551817139565712461725096743510658899123500313517024910062293734006655251171094055090984756271630287179076864873490365242065937822155786776116911917429011071992123810673262491536218430450178675175860479798841438080633660418495228000014560521996857222522252419361923667229151991891745464970452980095687620439439349620439804292249196407873500279095130840776771906527147673585749428772037467181091215053151773324637276740761774399692723555893474134165329945659361218812013267208369983121007355267770173536423758296477776148805854097360606951295930047165669900479565452358745087712304529123990488825017578101160497196832013226716062854111654226608347827993225097449690590726815203336051391544450677061853058460670195588794705524973875902400599645463169026061051097681268252155181133428044166841051623550361307918365567184928109860995437846668281021438589986729514600216910224751206970996953583021404305419021394702246825009169585581381697854332945408705436273596980707276465735435772693825271605345285110834583733366427138166776698413898167547474377359861652413040479387829368157330642240651271640321960272529587248560880882884543079747578511151997517854679614435657784162595856810536308736535708350064713023948869664766202765939818298532920368855599085651543196626384267886884122301874436132112628143083091570397439929363802005101416183765092441064032595849151186773222747646109318727083439780502921352821558165879315057586585668443776499620089328189637440710055652862833481911229134309725002930045731206199476141750661822378627078466003702297402483658081818390547905017831564834634290042367441614414477636343700407282744664167860573336218248545132782301439789685773761933111997987389277927689570349845580637832372673920631862010237019722669457656407567418089596451795912531509212884074494168091365961967545814480292300288858533122029126130445653578020223058571574063820457183959249614992439198606069662599699811712797735195918507614802629122716283421069608389544311529637630304826508616667570116093987758003391233138699272072933277129617495971631816844907103356450182220229424261247062328512943185364300579437327369513791500933528465882335967476623034475584791377826246987347430718045547553409899945707860128667698668709586259165165275282497133742147351971529218195571745743037834741976571267669223856554514015889399490057905625479852339539268369956879377796070293104515349355747744384103250557295554607199117436305962507419814803761411788320130884547730564939178145289995390634016680217353174004985172535652896123777968500788822639229762617206453311232891418460424972700819500655763284005893067211935309124240432396310614835935290586233561641007939314167798637253077484735527526923804861778687494370588427780135516019261091088548595860231339309390011506106328509988412648851549584256623122247065129732164950872898290108417335332293253407508056285902987968310686858300728192999431197744214230125502214571329509500083370411219576897632464325894340946067365641905740834880461154567282453067458511288103892437860250750666466740603400026734861264070191155791065626240540240200795539236324681718136114934250690094395249500770323901389709773686501899176599964446355917512789799945274215643481604418756729204809652638060309285654098784548886147520410409289389418858261532379184247233422879992536255595415734073664707237505152251659111435473611401914683312904190872965587255623301191371978780530285311284601924582134997541531041757240947422888835095874152559619205638401479272690160996880891519484064476811718432837249170403082466955672932945167129700126944143465131816768229689337421596430029255439990343664286408372149931623202620412320211180757104703617875792443828927845421016302522805139849240522535312343795811637049496690662700820443097846037665786772436544810057102482770921713378493757740538740992062545782204167059250729014240242510918701134694886241795126485914090983294577545715455709967325378702517080825689267032348115985373205280039765191487199058436851886749644078323498258691823422864991359985699178501576122328204271047568828083212672889543484498295899267123719895028490246604745296079668916095557590868240882927887175984547603530192219241546541582037289622114888617493661054530930063371442397092217346486609623742602701171116279092689966004771849898742665979892724352056457562838357204503764068027698400333161222758813099462758591244056014711388293421853722355372487581390547574443771482984853698173374529377380021863938478415715780707809128714170283970047384527590621161975397004066142572780310131127664472876284708874438958138519140209709584134839656523755103444572086423482306919370171513283548260901825747643099800876009706094939976502652062702471223535804149554574921330211426780935741097951112243254178319937336119680001816728295815713597183564579639802358622435003209458803893066035873525985158526724144840663228738592846374066885170004490842819251938933846292158171462242472374025708083150615225873866115828439948035066469551406362689905108218148618819604027510984019047827450730072855063716423016893020000092737410499498634484405907682779855335170118323126242917829385582263405975492909168857074329352393241284790217060218397032076027745515939643123522031795290687053523624316174660323161297896765292420737839179288095443871776632786411186294569518686114141583954558763801879308864542542906368381656780892943947082440125108507776314956593604959427143225365908987283007214923551879497032937886919713260466529754577219724671422699862553757855966939401575260136355731190214448619250115773151110486242543976924597365598154773130937994530035622082963042711808637373440719441440052406832697759721484473492582582866343841375790190998815799087504814273294509079120086710260037203106593519322648122882103327998661382787541302717537292712464129144370125231720507029552045898022194502271661497291840486043160064568075783709290809561741333868861040790363561215519635733551919391174740804135789256929662370676209548500089324280836493240323869365902240834963591434215495838218360041835917345067641137916338323943017208162320137779630886217608824131666463869651172671287190731538982331991702060951226157767132977713801695632432013759113830463881758573893383531480219851724537198228135910764081245926051891271955567972236784657382645633958812082008659074462731565994139264459455181451179833566803502552349216622564632186156105847424790864717885814603768833780858808764421190488313750697576569063159694368729732086980488148357004648220224141884631705613920335849557223600627619422356528203314847846809225975861629371162247732063600664689147449255126166340233023512707248074017402108109729876849577016537732822173358363665880640478346664214878286845163651934089744918088015532890564832099567570421917432558820739430222869734729415506679152147159057733631009730838192616115288888356676060089094216484595648630779989710932787306883479427884537895959975869359974228898001806545770277909129304472073788881794485439043966576283315490758315266063990030810634941416622255845201522151961779194951801248309919394216972342274701175784941832346841193828801743864494817240044841109034003519481000323333268442743701386929595805717279818417740273813034563473372311123769641475725320522339028533245681896621969313543135451226700677526889715236858950710726751596406633750505240275044950136637580768205992064217444989761489554626720208418322575927200656953572516533794559074382829614106613465699431797353687560082332691973031163304882358274159942502860407397230648589509083508738453105836572322068791705503139379569397198259563045604625056276496930777828936847532391546524553417628835486222309346146577094181956175908539179330773879856606902436085901420764588236862930841694623611371129387249802843393495175508392771713212877528815699777009255813440280920162530706635888194326297722298754601189392431266854669981482660847421358840786631436795599919723093702906216223402083969978700369051143060540296860422654607775750172164864880795549020956608099782061909929015008592353271585545957055283696390260210559478395641716044071033649717899134165574410142037298618597228126559252457926744454369222131083496326565322212290356003173935486099264632800177112920084647163386520371389595389425509762858644156892816380529573896335980345022628072010085965422070357165157571109716612433820943414323283552984130178678785519388617568726735142334858533880158396956680864417309264314922147978988897880310398959860388294216817974902906652534199898034191861890939909101376562191764875925176668263259972338317384835132766849786438904340904119540547392263825002690252159097534851407107582734174036632417836559339993341428339745825072082856991194338371975374570854089324393785322838743418566526502732107382917522611142172292161927709807735232907232493286226081368446654569582061280403622776611680912345130887205804245683782147925145526912990322890336297082315468952498505143131855949233796604893376907373671372609937272270951857828498512182802122971948285635016953022701101762061614606164025148146608279250079727545270434401813273524442863822595320153360716299224086886722442892749643478451948224341618366100403425650132956051213396309320609843203035647410581096167463620941681934950453978088314184788842634092871810575951978982162385107930527031187104222932342543056807329707506879868904701054198458679221947724532778545255329369706833476720513451640550029613001754511240726730259326928613781643516231573975479871018959763761045203930740232644787204776752946250532263218551789602077795467306839808656771287267678313209852491647246881889800218708448118046910224537248177369858840150335226489220908298766994844469074427991748838980372017003850406430536000826104357711786988860334778483956295824666489127007479306024557440314380487614326891575497634305441961932005405600799286314603749531252703056839017148759415487548112953814691111313238024513857101607802709913040189845350656182916701721855969052554256129220269576354212580249762892164732625223591822833931454897010517975571551838477532344241839854138527647181932509439621701544899827898055150371326992385763127531989086985369773087745402616438176006766493013981643972105442752715463432781051045466960728937761894077759875913098343917259898342157313050706845083207758194741250612565404518992146387006411320297376053596110423600232421241743422270912614177422626395394886071421657482367218934552457716371752648339397336474131130191807988560825119461472214348856703053232748438555678463507935305328450707774346174292544886156961178768306740515338927645222910517883626945835096321735797198891240900504928151253190733678413205628283947917305746605449340372542661912209819211655383059748691078141362065544025926999036910357053879317908226295760642028415117950439897698490272730007162140919713868881682020828396993142918222093363256111192552885214277561230159254550226375372486034735156381819003003380485957191996480467715394387628231070065583790889586725005198669895596480556954839872372301936387902898219649213253541695309228538456142939220502819287051273732497849647027766104612644522592243697237380627867102377406032454655498667321941606573036297443972008441604764433420873643329678967314671047496062301906020191113377748756697339449130497293210543123194484035777670545590194144874839445728131232831534974824671605012144245179482181021640009684310019006601354295699466374655543223852756416794857460398768911918031056521798059944852393173429988799097838663044701119794213216164885647836181840994291065985169216052052610528331863533546507449516051926931309286410150297594171567548566716900442198211604609761254406867358526643375186986454315610061521522805480007587396661510117100674229144523108448330075465790849260680375829201577855666492126155843543114474496220483739414199615545173138222841141917175117461777457136993523458091555629370824879947044329660814232548384071036410214847361672872048330889390570510476526567789015231055523652591361999665684105249535361754672922446389207500226966638758070940431309828676087422430812895689061977667848829604465079348227170457330771993702106693233269583756373485167017453631188182407396241961092742188297464928035179131938936966297704780496597275276307569427672328546702597502033940238771121769764625948606335443422789232764114569599956733985746259152548011914175613082334022422962222577075817735735906028343582608878405589886502207641347486365789717934267780715296181551694462403965245583814856421480055992848752945937044065599898845898879945134197484550367949678020273669686620726115100597578840375053181185276890498412880771086886898464308728062386397973006695074611772130628909562442423675004883976910520501889620100677391088380948770559597572773992088166874515734869335682810068591225071939623137492020214952122803304568714238908986871172442581965041521832287102393076346756531132066992884402267538127495862012380788063195901739774515134196277921105228639817397299765588021048475596444205597749017433831695293043179189619763028768261446716536314302914545461128857728556536368679666840274074544908149661959580086369765854727502934394112635912401956342103371859018331024506351736485476276458714086874955797920780780253767278214605301732885092068126548662872002081279237237773157649989227903637835822284374881908652193011052208541618505140478652038713957731581592391128125969555923058391677986461444136279090720966328186199160029722605152298254976718969852627709511316142366242808603296887826100362385159694501939345093486172047528398758189358458560719501470591771832827914208472236945766889998187053590022241836531838016763524543492397087572286046557099135792959423043073702838860043240795141080828528870314534568219385186169774187304245134666295186757634266244949169714806207982595053561108765741147657908009182303894992280993482512492922679729939225045957438728415311659350740533050857731850294867510195916342360775004235560497394097843547201989566595679995386836491682797800066718178733650349496568943925128976343796476577584380537277947785606491352489168175202755660156853578578239853974142704412797931771479436186248252746843873097832510639013296491559035965388710840067255609645238526032843848624401194868026485325505676805726232958400367562720138121755291694489492983846805998679545483851739224115274261003987331523499001855077796812565390702169476364754507447102574724916775253986534672712279335430832475994172486461147487482662397445522788263577086657574921056449845801190457456007297524045253153264281356194815462019536555649520065155105211753890222378107529194500098108563599640077830905476735606296642849491338353098146310197974773554584539533246406096105255920104098644035997853885450077383723643526232196709750164319615896645461299093777961222814033983348582626846809301293593309767604204163468472741451246003349805210042791759384741483059512908549954272444039245865500308679096371780375637718368276975722853088315656182800867589149178862260228584898002649581139984213345727667686579840406397273587428797242340726281753885316292488362876310860767407604365182376363582197583960228751485918765571048198158474091409062446280320554090817315949560023695876019065720450429323783932958295616789333698661709041164895253892398465163022849459992016116762460829510889096929561157101114065127928146279002829842117113941188859634764607364461943685566609377288063119222614649545409202469081244342600886736059550463429930697566861854805335653755139753955171298291789474758342706581634314963505170597239292157357000458617087475184745229023997405424690372329097434704672523217499905997826057871737670080650267268959060918492909089586374077787572402997378139989484057510987250012385363950596471748301119868254062289371584783161009926249123101844802383363478898806293652226999745825702316999425210282669669280458689372337995519397030835068511206128240329908570069022881804266016650507913419626479962564731126358960448318565726656108280562892413166202379025800325185749190173291768514186502613050065297227648526455334545808798117192278700814820092750405734296057029903452875811001304334316584670969438942197186489565963922158006787772940861056534459465271584375929839406176985890093986081224703571112203084064153551744016321759379540769381812780336012766281153950940319544254147670826649916309570509706707362600567565460371905927022102786773318696780123968967819766363534236213895128997306320292478034492740308407902492738573371085462863176718483858636470757549496771571806103128662696319838230195439414268186097932269759261604896131680061193361845647378982642275708466244528782449136733006274975388833779245900979637565340558386254667965008070340073176941012407069565189357377568992530738933857654983466844384500406312607096263581342733872444295213415235506934992618442259691878219549015990834707560169458663499844525342497760425494546621921734897330561506548569189609440082030082270392347294852073495557973083681711902083914773664594867819788670183894122691342666822375789864412506441380594546229949095198151837997028392799546808107090324473158501943845514963403294022122419117058321423048806006664129320227945087159063576450537712791273067389012601790167707271578950724605942648521717387385172338848113269625842219857609364758348155018587918200043238860345471418687430192022160848875224662334838621830230362878669062957882784915568112285210058616888900508751958428386808168759367875571976280608900680140857109728606885383085426582109315079692472138030386605834094267312309109947852849079897708954029413385831910603168182121662400611092669323925853087115734731029228090140609466433889253071752668755297200552695393817840783824769362041264968146873939513592407535546697732923594836569600275879309685969287399518952629607597931925014650296679828130742310712144732656680356954616374677289614430532277640613566297341313733410084587049641256571090087924591399674587761728907338119985384887744946760949720506658328658607354718208255948957638486175209603903181998514892255663012614441384943110263248867325207310299337438822378540961551652680307758360262374891264181425291910508880684111364214771437770147508571510507560883145418081644771162472104877839314229092496094090373748663628132453648348534960612569575795317250490981570226449560196288578826300021781738725408338647569911171226217202562583562519895765948344542346570839333685445813691426240160726524424780189248819127792362112567377152533238553473705833972782016341953325779893207952561608755959632114629146818824826085388266855528109717600536637991138235739934424224550264443797667871901724493458146083859795267372550990725241130218492701423820663931005566209583552340633042373268516161613598682615631600909153917822987229074076603152951419795518713391968514530119638425719640801970796104988065139147225101975836503642418730831734327879898264291913428013125979194338246495201029722626828223168096911962542112484597900200685047159917193431504478819777113226327314713325952554914703770487636613635178804164370341578418156297150685727521745221658006391496081755310698963827417471863917353251559201274057072343973369380934551852708929551738062970171458703343759797755454258597383905026739829271434404171906472539276345048952342869352571340314177580187105923803128009090212764627207816211491183195260205244009624593360377199587428021633420193478000830573441384179426429085781043142262959775069209026896392417232514686059309192292848994123315449482384163013702635558276267985908254785530851001525829561636098012669696881090859282499694587392625798499976451495871105906948742063926048065760449771897354797195585832920255780765027905719683385535724457734854115970416794196365067065308835699907982900761562806163370818294199500166937907838485117726137302958870326878359441696295166575501164677386474870333099295293130711008002152408025713761599134470185225220191633414954713096579228826416392131686470974467815605814337012335991151806032189172342130440226057966689559432593201820822745580220501152969630225529974889855508734445600136284078197220621525396502246851039519058529194700839613909465089927619888650527861696469079625820327632417377135258700921893245985082572130053713703005413484563618869307709808790019929525092722213341253288974224141082791260544621661729172574890887897658614903554005852848660053980829462361744702272627202579378305106963649464151487450020993774021022530669554036981410142319249379837952812924329718602196002137532477954058240807009876771996108567885604932999585384333348511094953102764389436265617996573878758971446904653807169112915674376805770728023134308735235869631579860537637848306066782576545625059040338301009596106661450122989647071035894322410209629006696325028557361368860278868523619122604036672604215280080296327908478223627525540394335551579585550821947584133193552642149944206918657475910226072036145384780077567927734720136487102023602418851426765481585783759188247033250378112456827210625926283389999857634498232175808300945516394493388960774792719928085093532662461163312676223244495753704666093828513932242925295047688454474467527332860873692251429872907526327869783802532390425966780950987211595445905582188871102305350534529236945504637194412246012764708078922653899382836857147426773103370950310753619915333564791845230304350366161400098000615373943996776116364582264853002071047723025181949358413642430006111937814154059718344500557602630281164161805941780467923633518638033645727664015802191281856707058263712531343797853424120371285396807514235439173576828728321603251871397158939254173721364799553047285602763249146245536216700749319159985326936513903114742244362761789275464018641479697100514800549863421164926801699262274687017302411417567236856010281122331849507676801926401121922160837566478416130916996392830510664408054433378734839412946130062587075623043237097098151125611817829924209665715507137299382927183187809157984302777192054023850330060161113051553416019976675097484932622262964433800772762845363868794887514743876990162135554657672680136219245924893995122553516727673927425410106983469798668962077223106657341342535136158135488594654659407682623029051097260096571757070436490246392099117396306984095316703965879337506535968184957004520472908814437321519491112094099758034707307318723746439377753937170176926518586360543933394094852175345196434236104533534325241468278368044428222695804357121394251997757840421114480314712916116247367531669436172931717751317901996126857700158127474111543190755066249960886944608910093495112020495422164968339327503594551834798231341872042119889230120481703512347894311364755439104355875575586598290849656669095263139772092700389864629459641286981302597510073254217049742003511944569644653672594009423410937880775901332540255558809827354144816716556360564578479704865444982593901163141583731577400042206750028459475305654250113608515633650613467316845286438264346632514677035328596502064617096756622384550854749922339481043549272730558549166739938803858972787162624627889351220103402887281642355154892370076326987622988477077452596247059449720190217726085723801035070194042415967686422158567343060890085085197595226259907831051915570573108563545547252313269032417671674927270997466525411471580112505072239508130673781815325215783764897181199339022670385681354737303393456814626190382487483095478060442338651391253894190549786789830991461410761846122212950592282881631923504377009657654777126704664060672099440054232350273060642470503490685970959153246908633176199233418459096659315861569046655789256492933532217375458606773924161326084981478016526073208882704066229210980513913734258516782724964896434711174914029551821591161042204696407985381924793739609081917217275624255902587696464419688170521428942121002126521106839413348424817888947075181648550009764389312779014600850898953467569361526426960711765307808223920312283800061935032448489992335145533234420833207069470547970936980186442850819334154127471038094911724135313326245336409215152418031479751749095179149247941143797281425417773620567427022748045209702878009856132186173726551785032880450040901599433331351303713710846178625088506640394494324911760217612749255993759558144632556047476220758905595962464700476140446206372680233814460549995642563058749150296761820685198167008282120652203980366995679865758651908811138841635231555412914300399251386376042863327278952108370685744260666480806117510050898519567389508645809953862286647277466577082505742374554349923132945601657011737638308709252981615526019261329814035093221577163238529161065863065570211038849350411039823089777139578611655696727588409246945619374000032101210280423895812368707547147442435413876839105380486215682636895415722759528443795886874738975189951721538545973926305972256770572717040212682972441278399785106367671417235238502974684846554314231794556575557745768669485123504609814354597063041233439962002952881807125197156170164413381746725412734107011402474790393029202747361238855733093313062728128268102703305011037728650424477561791002338597892522786311483065793770469162293348132749603344572599612201043886089749923643421509862686855107395068302220875662402296363837138122015792682761010124902929421591215470586019919077451750482663173316557111516010894844070492601065969349514166397944183638596662363791439736139498361491085201281137814436553511375740671135475736229563051093315485012608715919899453472961467152786402246714590063348637466973666268395178116751982665487780712796492914667466287968279449777752736199475855264740341155063593505197021839861991936928932462165362737779696368841808885652709210888135915627494647301004586119231567217367975868577514961534360637385457746090521436677495264268853087131564273900205710439170029559254928662842920259792737690367771653598803250491972959175924696520491135967184448676558727564725730687710685344253218302181554298458525972726888810270772376281432942980874893249086743991091296265651613084021411891795526810705126969557261581976532080396978692274498997380244197533574533740778451733755052342408406533778486026482188217894658214760636750839208526625731057656072867944678997804142723928593412775809749830952333127238241226530715518533497124960949976994991472623106882450971330155714187569937945037742998062482411740586420226880289552930498736696850709928441038395908669229260166790210511262861915155637559737248894416735071965541850456065489748617248946884881314618938613085205801941026462512396509806178536602335460091747584844039334721331892034476490293767437796064365599022596834236106719159245346714992277625293637442407569752336348563532353202701514856917877373749579416847148688553792672631626754778112642026932041329253700398463189382864729928050686093098525388487375729616731367606305303077564703060103162060884412757950095987111690259545703634019047386677711201645217198176803977994734064344855840587635871733267468472683722254463993428010661608719822442951140373209686206872307506605219523394169800355015514071851283179853398109889073732969865203873142924941500599818317815102999142169210715822719543606972536782973745154496206667634705628943976719740009716250121671576472426953796283353937760445515075504286034943317361212675855193896325160220359921308988498290596181166354145277540844161305786926177874290306603812491427261691667353764122173074015599236989751366473544192239100101873774962574504490953472145337283212828522139584442762520286011226197391135972250857615700130138157444593801050865495894700275356440789558308957731826152152104864703379312848783311391162215149914113599728556170868500808844854966485831075005197766242654083224417290877062141757374349554941465156095754923318216228492608346127715106577574872605586346200352243689610766820568571564957565234834663532884570388020011807181510664654526892451618951088362621186209311452781625477540307749814144090774819254589691018975157504665036076090994178827981114095307651752981815302956578005006156307074518379550732610110357428795854159643208378224356090213760941421886226458371476610531021210406942607409352626547840024148067283645279700870457816642078064171418170718189821058479799752683405962861870587518183785608118923746198570491474457403799735542860611932357808623373392741548208019836077339812053767510016047551973606308842449896902219089773743803828861199344153885528518606491530710219019798863455986513622235067970787742529303730688144898152766176442296654084491416916722236728780186693307062614709265109517361432483719702382549240665613876483015407873804023309728769621746656993963016311877602992827979607201591910292210163538964381271488318708198570842048197478409520350266803234182107847265822555423241019339515163899750391990998249184354701181866624055290777215553635467059942776083266685846674129339795943466918165143532518952862126069623767632134281086122202749291433516501176559246448444933130430966984251218109513927156389154238361007396528799391716562660738204417726157371459182480195161841604949459416170233762570250883096910652249479380903889571943439552229918419447242889541947476555183028842590493340077875246601886522160037085463682464830300220525938318660507662916802914914404098861493827836158201004345341033273082524602362828892522977977602097471044248276852997947791757934202051601327734069364091425963095761184838574064421196069014297610080082456939185285932232974006936268235596303295013156012175233907408529047236517303806409679784449799038537723048891399879550255366426526082278452228483586817241824575508092978517891144088732523476304422976136826624925378633898912887117024643386318402059730698325817246394812220461289775194109940365467917917979278968362021007376364206309388289948693524097065931001700375190581339378273123018466968378151661127819976775556331449936597246670743167780252818638739954143273414017371334027725970586991658755757805104335861083907595482896805055141378825868097827722064579261697272788198010812811341664428102649379553493256751120684391163044315035979651618196767761679272048639239773339282373880497491350859863290569940612978643938149705784565377805211015329011030169831896321280203137120384319729652368016135084460239991021629031805506271680810421522656266070667280968953678997059359440706851238810097575162298513298909991804761729107549330041866752429179856104036843193160446675074746198006181817933574042462415434967039290818055156143873726040530482066222386316656244054227275514620841276751316232915428676977740145469448124485558971257530253246690160651293677910131206569828526947341190180309372944029019262256944070936942419582306550901271039863886714494383611129527661137878878833981718676545858178119529543697129294131044771145325768393611478776373155853346307017093228769536375687787916333528594083202448233116794994289912428375143067169730002532579909644953878776275563282123653958593830180472977140829088930917382094551681714395992290400869226282168684393392161278264100663548977531287166234186200769196188913202076794191391222178133071149379159035995925891278797956773229328350354722875039738444266222789197104174372550499928613966608556759227114602262805536199473513427732838284982262147373141790739738232805417610799214808743994230444860387699612494584094247005101652754971941861960740694730793781085021167700366670392292216183152651083992569335383851739360817106946696771914921205565010172565908596497420460061996991712718115869688858287824935530918992138678974970051257793270966081002233560606882066031953322426284733362350937335561598942058424927212875020224721142176535785066529404919135989332813525632624556289121225577595166981349601443433612479358150571370246024831409957391988258345995209404555317753466557368241771731651413005131711021635320659451186101457316234926477443092363775439012495193640403875242471514155971540575010161209049958643710101905962129170729207274444455060745695846105247648241016268642999322571653466967855636019981254105996201946422608408670771113960649712170301930279846172678029491475375321479224894557893716595010737722563114554235885326881476639486018491412606378954538663360675425060096586341750063422298584411938758504378062815947583543591838501560818033931672576940688919971918327586342239933518000332294593083093757760461762462177498240378648424973532527628780605571327092613090418694862838542623101829220046014640674744865861128746503787677547203042512122137191580175832918124904209765864965064371160705330975082422482015682902548312824017157958444944783458596701416490426231677924089181381926362746004634192974302017836220483964721280425727812969177704271669256046042984093844417181701849789072998997581818895398352788378478725935942917744187083014019147307026397566612871051932427656489327361476833435300646514843806245951223415144856088299857443217309166687138281131362730334767400490881490941163694289424532241604286059248880635053755860127385355844084343976963941488047540445484785672762341318507561564645698270406377381277653911687158983780428392842963388461652748685237766997850643958966558571857550345946839056456900310176603338653287745333798771871111827640072523164585494431274788249661859386118996553119736667858157659650332276804841419508958251023640107188546382610518463405974929219719619755187130415341955767591272048112253767203303844702950167097231919476760024600974245894369706269385491369351905039531120791201933900204745463374480080734511550743592119629347625442462841732883746727200116903434337359213947302074624090832911969182569295776524491671414674887521550336192897403993226421105360134123503857548661339638188612067765424850069823430337810936853732207023085173657205653799164678664670902829516317219504561906599232939179383514197206339087764386501129040268383745390596312201468053104197290726283830037417129076478013594017665943145467098208772842186042896310322906294526618731024929101776224496286598250148703629071280261746851317232256965329174116925005907930339867256625967961964425000698872315916166808008645865036801875734310632066880752095487485753006342932665428560214323364475530200391230342504371539151903337654943510964401348898813175271100911706800654345184410072096246542139866294941106033597089792954616905210614293772781613039743504098750906103976308322668059234034458841315002950591073113768252181232174970701385915452240080709892007631566776682014691898819321208096986623269346308395074215382995111221457343410971464991915077360655902099052445478294415938640361199268858357643476532688086762491997964712058072094168896127939881643688720636763929601423650405032298501737106308492001749724731915094786866544824488573778358795613640303852932781653407964157959242760591208003463867234908634453996855064111532840806607747008477758389266933534855909233775522909741288833992404386334712323407330594064676324047491886072758863393842985946874412000779365377161946969954093622851940833190038144250162169126357371482809388480326603171993570227247298381057927627610148342802372664222979592947389951685216483102066314879443062329450970332711034588999661183772073553051783384262918187017937321039793913489010992544926147380166953441756434612620300495341902465605861340742155128332657430740017581567912343240453477055850690983711981519972240507249469963140525712209325220441944439545472451142414180031081896085322688109176581364366281572377721192563284826863737755596149313804659717601047959242686682502213845664006033553366753119721416563256558280739305101783472615660480522324704589285219351618932310896894882693111183445456524467424104692017826338259734973584022045579195682939476568957584973943618545899004883213722479654456082512495193596498904355974778076191713724189363397480634965708771154078785873477636084888136609066208938014567386250596541701940032071754620474693659699222270169731509818063624558254937891589117914546558389930227963397049273169350001786842507068599944560626969405022280037813927297550741526791651802918286510919887976575756841241301533288768762761646036193358176472908632254551498553672284798090826167018043457226328926140637851442515763251187830014772823030960072210855162347431810311823789324198765775271330745094682117208117986596035076697170462350026374009998152070330628690609949074407439868589636877535059266761459930261333894924136294790039976383382444469087945813477826793038650590692977538328173388627684240543199773815094154939644050602649381895100375668176702556474877726188490602796585569326242665383395187241618061535898848860639052367699205404735385257859420567571674191985376744238763749080736453426201581656025472905644153474062225911253184207796140529948821864676992357818990435595618161227138681751148148318787841349483862084620450011388297928365772626049526716295018977907256387182800037425687329071670488365358080629205671710160506497923576954472591942548333897568072496048896834688618926491256412828598243004729310276540886113669418821416220389379797979787427063994587401606634148383869090674663837475346747701240731153788598833507309057072507055244357818856383305097550299497625571022421622421376407260732540820267079224728651380223210582964305705737580022348082799999383291543132992321624064420932694605976849092331188642239375216584085524833001288278432872001141576171644402944823180791133471436389211313396327414468499466578018075060873946173772577582594545628283538285964852705257616959945169245053478756721618067173587372658357520974576820392034754749305966453426669835110418019599168679649603620161307454875850117437317507712843626582944989749843291772538349429712153283945854705573904078798155087446017661972211822222668110121772271814413557417384389416800321478182413396411340324708466357656187096514346155395245305043481430018367446472943247979657466953614769620516091777304767123043783636544063724921543458658529021378621436063886862060251437519980733838655430152864265965668951845137587163899262555571879512554326964453755014585412697644402299289339090429043188937486263512041661984458694979542813225166970058922944484464920110130504147843071463471550015505763882441343532611985980202081975229749556878427764514958483644895246468829777369166034726053682384928010261706730508961674898539279769037308451247379137260626853291247424038736513163054852004949651160023569600301829119295011262246826704386789871234790212241264741366963264679279927044085568889105989507589490713813626677427974702624846109372682584205667034348238363285770914817272501363985511546330021533873692453122590364422770948873479368188004634919262434546346657785831981830163564573290821255378519241716265824185440518119263284158690039532558149013387800871368965032340614319165899504848393168741405247334419448358137627267019888815913954662968088003979685828985968540952458785294346680320832448466688207775264297914288674422862171965441259533602298562775477578803743039501740086755730370301674353408620739350040009735698816820493115072250964807858361164772696499714610041744075949643944492182290062240833872550337458878667460240733741229891348321175261086364876483211431898651874769098212940491791993328664881796681028731112117615167157155825364815608231048051235526797991447945630116910994767372684021732789027288344766611242080927038459914231491855201767766550129521546380911395159333695337855968817157691692963342460592157425517169452167400233599474581037513895756968198103819185039251434347943456822266128782594037007872078598005562488374726783206181105574521975887592070777407803219563568435841758332975321910288204443112536526917457529609016148564935275901338556551635571950323611875977010443700366049798335525067383851836270945616908229549683073003456858823828013736322611186072490652127884820324050435057451119639004104428644115290860436718691504573524025047247120239885475034890613863138355325786696568754253227780276010456069863339440699483606811662590943501041000670028619437332568025961841100436447132940453431736006526008912771996295548721208524033862532027691357827344071003858927174465518770756321463747528156628148812278270413560802692128643889154470508023279501174975857873919314043790665722579148866908099436693050155482348472945043940628367848208347582604428613938443756892922166612047275755239709338142703685972589980999571629383695698541381604803065509056014596374841295006436631598897748729825984130183763543445270234028719043894825322967704768502454979323750258551972201378873601585232464589863280281190159678520654498909601103882617457412125414144172342803702492787666970701748606594461376578099143078510809670860984614298817923159706833266704231303561140436018132472416141929080402873050970383289169934536051415491549944257272367554860290661517471397726375290729846956954058058586488700009391919130901709731519220620344304991688629117951827904395938238525399386044051718100476451191686504344156209858040135073645187597203488193695115688708943183702729411169064044618242300198062195237088290266908947420733246809132601550461834987472496311570400510914853821173861136349426778457380787689815635719975671874270812963728122642892566108396774333705378417802149085351965895220074745018915133600028584644688483344617241488624276217478756827716322218099925844654704502827421535546095369219576390214683684842780531876096107358387162650236635659237016506430492822568761787385057691327170144715926359278631330027457400774827521448587793172158464762879373534428119507558988793524132193231678495794982928933863193952526747078825624599580409683406844631533423799066832382820419389479026077073370637793820254573577354198190473153603809185232014900508555687565660641616534122674130891926311310923037937010568404575873917380563541950585025049318826971972592680580575508914198475431079162198367944466636854769426809841522655588685055823547703721303175282188517591040164931497221101644767329626268478289838167777728331907424228362900516812622301758174233202421881412749986827515378879592224567976756061801173440560121937484608919563718512181558207193497349308825973236903565736352120615806223105831197952628313864084719186393785437414454508588878667497831183661812283427159808559200056708830131554792254555069691081891511582770619015747706949027585736243336909964813402658027375000853883487466658715327003810823308241355133121689325556363729762923660497976751063650328603476883640545676626664797243512585571218624713200335731225144011172429613945446398287174639431387066318421707134955155695421622844179664067224191702085737148630690638338925925764912961567211063757106059590423582241354945215079154151192120543343979719168743011454289671184731842235866793608382428705248992635992298539945509725245268108510952486605411172135785883327258330325500700467077510386332007646375262606146078897436253653312844646116236068851441367044667019576121005462196818833573645540956318168627915567484461125604541614354221321090805433721092407073888656121355685289266457885644802005673756066048933755545969132517946325172701224882873939020910470001201740293485245818334565449564692754929934841113289987234333336131567610054719226666115022201810245736107868154096596465574817729889675034934753899602079419659681135484109025150896685726119582418986212161430291315009317705263402284752644429848561474815613858198171457410825496322600368462103383364298138774173180304441765243204734628530598199248291395424336714077728617304312836073113423105702984527118676675094088298702228428006745686214063359585454867786458206477551153049766643868245806481080905327028286755140325754008657921590423812693879966323239368627882210295924515792584814748116658626004105357784056449326209351467462354931055539873374457834005397201693875242963132330633972637692988001483981656768277851499163798323376503686336005489431808588419591773210672269758378084790909931175619259561402186576344316396140356378401471138619771742826973382261606659361070595699951549152891069882676436545563925321998624744199139109394690910018110698076605002572229585183342665895713485464178623135610176203960120353641566246643239952966270231646778548778785622097481992272285718124949993612884199860710475263239494014829418701688157267288906632741996484694043884596847392563926809591640630277836336100050282683209380188235413579739484993587254828876486477517487528828626368811962094871659636748408736724207370098575510109678019470856010392771202408605032374370178241845694628733508062255320991661224425614640826600337091508162033456066716616298213734879835021119364252255726790288735252649013538503961881756536197381322086481514566738611768460561267638850090625493973839870262239998588053950084966634633180082818495306240930591071337493280173753057731084151848862285654733551289014021656700963587147355558095739391161884820244321297894675391271550154253354595660317703110044623629540733744656701087307945219589223314312370005563690137285097179493939035152038754596484277171081003926979002775156881146756961854123115663527934373638268304138090766076337648087403861192913001443478636360459093152825746365105739271149495134679957250661554084529414253020771942502420437691903977906850250477234915668914194928278365846863302827324963038669860242760772812520521946133046652462696084539038653426087258052558975381222902713106708850154973381608921426421032688795330011706986295691734535066006264687523296013669207428955998289295015891739389554616690083997280296729327424451956146064112448902293083201154502833471262725897410650706696080504949830244654203494095692971645401211297149326707455807046655901504403437574783259084364574857618207337882857052830280357010611196486748515827855907495553448045949006260770298443415984458808899832060768587646449485324854843072232562605044539429220912824057902700813743875929176057266532575281089772878370547274689900617028902832033151861225069072738824925229721683417556740309388972625641880087103583279567414160146912335676697569599423356035676623053403623400289019494849367463781954032326563378444389511549512636390608589469259689097197955194566102580107959498818950450387480176625085225081003504747263635240034079460428593252475847722656150520844575678576554583597638264332594847762806678790291816292657656747846059820778890873923007766589596575590368420847148883072232099917882436904644295935816467271413712357462875302841293169561830237125287932098064702211490168829946105218872015335185919925474800830063712464941203681952434494811089669771115004626386169323652743214860044523128091538786282642280748279855140986619100328392197525559726034715442568769443587005188619837815224373127539362925261514605596428167009298070017251249767087039384499333517197810894572044278812457844575222638856146102276018284373630681070582299119798096432347385984145567820335738351785286375998289942511837209985071959885359959908732250592967135443399150527689769279591271150390474076048598049322050546611156834182403379278259068544307780606306128665874451915907778179567488038670969509810796362290665341398214739560315100483965690305050290074060997000195609696814733216371040515021498302693749956556815469398496926174749230263524049095671487144557236918847950537289162697343029852760004700225355262346448052134488286102922606789363383071860222751092135342949721362764953641747639645523924144958308367772061576882464335998114414370089550725223920454959947528532232421366996598059125322355561071402899554245597575938326816731592651433662356397717280968666514761700515947201556151643068262850727650265657029398438178809025084763216690348083912206541422545885481060994024156027351314196055335530674772559308229109512144842459065814293835087748380435301903791577140213260813702027936120456225018195777115078743981672352005033733597610706386201060317306630116157076279231376280113381722779906555093988734688545762231707542450007715009145559905445764108078487717036302530192187578686204228941110071868637590998236029403840144886771905565915163466926070572004487973495783948244739635974008201972245828575457232541723791037310154143084400503064294016387531149850071188284844553624088288686803713575538124982079567139814132116423387766959702771936156287423374667644141119912733854206996561460366520198862691694063115953213414438696587974113093507990715698655495566768898247423882610476571620579221889166760788601709516781089994686886972078392386861817182284362958272836584111867480747970443677703315921818892473509084747193326013817478030459267564372899260361893524217550062148982990621370742153223415038017433351074181213359525763475918265958424227806976598625798260412159152184102592648580916062359069721573152956553551511820739295847293894260140460549423927160638246961239185504720702598334535346064286847139537754374677212369986195189844753503479270329570997360356959224887957679022792328435017618839175308390146931004451276699245034259714006721405445996256659764230255210621851822827289309843038073885099000349869068424847197572473435662766487227141302833661883453176600146117558045581193007134348791561237300933728098792880780188562127472841192076629544526797889707323977312830750346331476065789203376698086790718457056170730038312730784608917845850491280738664789625509103350024940365671496154988915742645881264763422442902329966010318026984892823644106086311644202310706035439909363627670166452769911531702948748402547853389094704031276466798298277311240952867415983381293439936431614100684306744494257338061138952814837194277934553279190761729250261734295086850986577186127910198079187514039025385882121893030276263045704512181448198871096512487560524948014204663937897269489099494340464137028460911573679890314143551768673263544363128886035739031569879233021062228631962176037947922776605629165461927899708459744308100081483717094369800377225708056025997417758791563728168432000739849002282239752098196982741903079407148912980319219525669883687022591116908885989591045111304715348446511650206703718015141304895151313041154949447749666437796185574232359439708750082230944413455796803368873403156175350046513903367553160642181299000311889252538954514394906991124183387031363576028634091001841632902093101450497714620331856999205949218575635619317149716446459846408791818157057981320029653580647182197096954524242455561516740236655778798511900119128363130980614461603305281972106092838816089270152884733533637464780682125264844527193869231487935344479413910731471309986695519389252064449887279941080915173699393241727320747139398883076199217677461231671843213616900883581520990421796799405010865325098165029727457298246083967564107389328660662415772686430777737502480627136300004700950200214137202530655236264766542626068351619106664774342629993236820923104035650426603208179355342645646798778042727100316035231480005800502956264928399715081083732545399389575828917596682716189602176670111245459987379088624878377929647403827482740649958498283233932929894287828921004015319801230687137730604827570802419821980017093150419683254283745644095801867327591847422585761828266102070839360390052511140117275433128348209641301703281876882275929104172822656663837101452771966272000069557570882251497021616083989224704862573900314178032727500355050142186163740223828397309743649154114395390052139576564431608698456718902162044034485217356769313699143466045213288575708822714805929242657270663868021503007428350585530758579176973695769802565253466905899681175504158622613327321234507679482303077219070946724424241017718028177051750679447233350064119966966957218702057579374222317541359163884766445830545738585208348243040434201830514826379181562513345243240082397656127452678877378282599597977504888100282336230311610924006781469392788465705651579498750285766646869719780440486586767924308105555180185489960005809264356900278968564828560620640817771761337468631431392607390577663869568231470690614821031357499537923638094241812546190540958305462198847142844491500996917588081577001770049721918657614565582873230442395031511755148816628511480291951152588894508324686167269499580392190445187541915361460718147101091695320028091147671796486056881204121188628360954343301184665902774011029602045230001024908104649000037254843895411190299790779609933448892533995095781254487151563283389951485382403585786851338063494158185011943953746315320672695429883950743212138059128195719447205012997129896655046836375532429582142475872239927669592250338075770890789839641534119570015856362335472985799858493505210266145544232105249099336060228072883096815491815715505629290657682241359262889765904923786570309571422367539322531238585186521179992293051381450238728882408477490743767343433881064960949614565298554053104386990117849905455434016800601600578290440679813074912463585290180254084713166868082086273618106705524634779806844949544751639956064993270135596497383578852927473497965868714674682112098828091265192132849984377172469432199556479637374989994948418781785375248829229798799526295841448632040042287422929562261034938121815123202837330385078690725338508541332306543002004450781604072446620943981614851004952454251153346842182133737629448732521409006333272484139999959803511297335811195600630248366094354792571358467997920090449162092462708555591514592213505636526292188995180511379587767439273622515851764306769853096922637580926431621201520268118082057813387814781845854407281898631247142213747994841613272563020375113891672096173056908577730829728645658170124171667075804685189252561232992574536590559770789348411694862956172949990477731718671313840572482950132632447678068104850671078512837087081097252200048024006373937782215511071695452516542426713876234447746955456024362925632464413730304960464379902438659665358153336606231743903474418083218263802559713117002285057080889151939868351003789083989906797714876480125085748092727884021384808726252615256273427759873391006745125326724611991412123553467507764079412815042354113848943521832183568218962715247363482183907734922762531052710049041905001081667203471332654730228965855318314617154062116174239020253233800102534823565769549334412610398473015778940542531392753891098263910822744485330217688911684237788727787591417859779470927842138582726053304296167942369817220352524666079963267486623041924220652410255330919159874634271051659368231204624794650301724268049050960979468996625593478740392746272881617593555426715693866906688472619849432809129841826265358373422306272840135152945248071955812378534673418433212366551722037664525873954280771199001508509685221600628579505522859447698344403195990689283947301862535386102357645651754515137485439745638796937361311827420024270094504672846070670181052207738995399711859383979056182024316831668144892653810958655223233961911680811671427310819502723339836064917416811984115159006212217169388620075760653185663885804282422300356651136586517409464277206749634798641088691475914724148257888103514220430144363498199518541759237761611117214340839097869123992113457410244847268404607024074749292339433144400925132814979288124445645222062353237771111853421678383588843559273890430137257552204250685987580352879001724010432132866355352292861201943723006520655244510931223403588118827866025592528815068097656389653181531369363728328018647875050864722262379565896046398211087478412690649167296750763668410942114039005781638888764480553728217075155703340710411516221172928848860278285144797137877009589928041923033196556930593565991851772168004461273439188620599116886664719709377945831533378651214609441344737301212963745017023182591815835013069512583682332841954057257875184742458266250255574212818045254265260297561287445604654089317128627792893117982754955775764162469753938520401521652967406024312874881240749059391951993435655695361484359253073698427138396952743902187181488430021791800783396511497989933730075245480271529372728977358483109673520346296965199849111973401647324382426396100381256326151572359495531633943446776324735908317396081334891385463309307067678084277017044006852601991746176615889570764397951944170204683071787822936607254394800291707789803005312409996936395873642958671764625460644533941085711403286314056604827211447975615488524370791283916056972957968512365939308799785743397191485208176340636461809848177506237910480794765549405470421275107029024537345323529809041868117718947960824588369913565414814964742714307945906692379234816900052194510127297690865566946504126917959986829053716175080237652562718351393744648178639754613430473283424558374087624003211541617169061514996662959672570351334494396802109413217891208677217831279322814935190271839362864709859685712444486553117063522940629693716261175090171634290973655272206738205187534603063324237926150309123629817099661799960611725721867802447150959049508952090715751653277011622102535421133785735163511227102290748483287118546910297006058949111646749517016955772225817004441679165760479567473777845113808517935595430892621755335710240593420156501528876636923928878520039446957749852202526217777803450628035831980910686915654496947656747341870082872323585954983680229885853365414781259446424946050452263855795122837986889531928745006784916267221333035823306457824713645428418859164653393271858431024684732106481514600570612289434945272864523563516536367358673525947168164438454152953928018693490579242300518781096269796666111128481554548145978745639349137245220991026934249288352418189189052308911399527911585259944640635744050015336725809305427368352444420312569004773367352068319424316344351537163777434327540591428681455395520586256416330475626973013860097054172657697660700486479799279803546811476457074839217699868309192016016016021709587634909338695466299813505758102360113422564844960596559147835211763756192543971551498209658309334043221579466732358350926621525852370337614761283594815275733574856583506470821468067810434148990564271737608354460341631135030918265286456949759741365076568297449016503845116049027997331166292070979824956673351692588699582957392539640569523419790932152599961404998189615692891347424005126541541219836310593073352757108100400520386048855728480940656214774858538625536027719067224386075171376699478210668324716109951922150416960806509897856836546146458166576532503511867809387027758793550094795121342649649512444367842594312215254793154652055323493438833982552202395424558865957878207620318666752414059463985833705385915709901515707226233443056817417194436671954483571167924517412093329303613747858056169303258080548350760990828352501510088277305605825978848050833974210531906079200552123290286131553405934649723078071391102744238248122864032388192106077386889661839069849263574091054639460730734572946944944681096213254992530322313494684068412020329841471259994826625194571585825996240220381632213436395600167194986235694527937514586525424417630961390210990390286228612352942185777058490953181322338517634977219091662430958292902582277073281908003851334651465901957368007080003705022694817077106914343061576309344119249860511478507523788848623069793118141798873888054175148210207279797331257996716950517988039110822971845101861918648698380791990578520774220673359258925984957888074043179959385890042677579973699381157025845645260396315876199708889800076731755027601707826266013760545494397572139380883764018064737570552032218625666162219627075019942665373555410386036876086999237696112969978414889779738706191914933539230611647875569511626391421839635396402124474447343680351178823278264055980048576170107718055451134593575533548086368322044068686259121268965330977434859606182005070510877094673232548382825177748261520092038329043799174141278157125466536871457401518447585453351300854170711662437730556875656614779145275816018104439544083134656072642527618146438877120602972970866256283046663783428788121978121918368252225169986051561817586720411987269935937229614354006086569170647016129891650620250206646513090401512473936840881859367507695173016779658549079264988779547240602081791266194974821141887935516021498214863547768142915168269921191662386529319574488580331137770332123604048445920392010466527771041545271854308006922261205677267082709223858083743762233699152406419047248148058331506273769049840322174983183168694177435897975831672304704198212547074570525103896352469284699068498487626372642048536560671068112572534929903203384553962348591832510471738203360410132108777888851295431990038996151804331122407568734043274868322245378285579106392771144981678457542817838111323346037592718872435794181656724929442596929229942385268221713547350539487331155777955522199429368310363529483019170023332045889900082963373226975288268266549512562391247416764321443775946730988512235436924299231945410728836679416781869286416873999378364602714092955020340943652058741603845120049901495875784028927396668491431376220466997668737256821038422573472225810415900380966430264817659469047637610897852588006523845568175851756167286465820441583282295932325392003394435519880338933761690840388336655379732640626120615451178878358676793781088902017151681578739821330919807767952443076403367743585336230794345176304796408840207811827743191174165215327144911831983667039139818041002791029004803510839283728334847030985295558882478509830420419610470552659812411111386130943334558547232207578171265117846797775910012860449756701285974835484672122944982032324492832199851006073251332548077894195522711115068956850351926753614681208381901863053380483714261887733262973279618521657315718399754988076373803589455056064178956940186961083815428899624607429849732480735095851805786802999624042303315616113229496167239469167653281061625032268089735920280774649567066232908342562804889228960615727428118207132733656058004042255474919506819245607896494211162790653249283845813941439127879730543176367582606240207115709090360156084524547997142361734528705231473793472990913547976631685785369139494008742831853803662216708628766476035254721858849791812392363280216283908758751819838206570763635364851930584877072405856345097448295771852975308351791597859639054219548132138819091817083534623512463485281534808306483182966681407871406216782201573541912314773855103031788070774228942088237248374409719076241221096746727237364584170760121718860484540015295877764406960952004183848825000272333689066069051514787078429484386825560831990374620578847883715554057865093371725276326495076440474135402254478540469769277490043947212721100051699718411457480078286666374094888250289843501027066870253313508627729345952372092799679648013702887190377635629649032496408741806152639994276041905976544536210276523629404259118237029575374994614933116943339281674488433268116337856936245725805845236842381955114818617879799894532140633230920415496545085563127876899349883439505516954469875421364301506319881769906170462693962359859026634671973019664590260474060446556595232156455281607054534682991901713868227171329851508290946061034032303684317127452855002425657816808113086634140673577871612134560271479628785660431612262631729940080217964913734670622335234341475679534914158204212755614345426063789537596657519353694576411884953266360865934385938673114374988559874538216971100463585111766261379498016598984671408219152239793666121828929141324758971734830421310831539807741387707308888362189876803737330794736418333510675629174027217774876841421283982884656277290826165070390554312435770246864966836119340071749211852167334818507305845558025950027357723125939838672606280868071369473035314949578890325429887288279665784280441847410856467995493823368186166434614563922307245917755615659383307044398429210518440510749742289181086803800274021668175190919643484294163587438585761475739521998341096052350307444611947243640156799328638988316534284049594107673012263501062020467436919461299670291029107244860734456602512956282967246838940388460475806416586692051096930479631140948407282314302437079786522772628263581675994876860076867485281477193029300230631701844157234177091042892657944130567283235901274637084135229886184095855864130262790691506005139606270699387986871107527939294096721643005868294242857938088651499998690148149970060612789184005053514434649020841226848191786494238558039139432060309088829780426569203251368924020653619741662175410218386094152782718528837953204612566208144818616054456591085131078959287273132960503475785449684901268866061395784991244794657323245526918566135337428138337463771293468227642328347148515831577471563080730080489667026953372140942022376087059128049540208035280314546593577828215421431071791089611386383908666861153089425493652141497440487517877751796807670075297079874432461579125840196371820637263457370637735865624964222765371341742305855260840964788700820792074736211840772869626253268063141407028859862470948778503861738951605934197980486990914685507247052251126994617025129273902579787882217659501184211281199028653251967818199860677409488797356781163079754930685558398684219134790674200859775643537621022917792097035373116908698402779726953906713617210104994437108201234787372952497442895576657325189306793482221709415585268154686375239209614199127884179375861352555438910148777343751560642997624183811026019447425289108113935807567088209779550924772712237241557348583744526531932026350256352793462393484595172973308512714695724314784070706719431969655672382377628837151813493348377800379010794049643612617649330672412822121097165963970216541146110711875830588197617079553878376772744301672245514056489098333493808937002998222565386192441868438710561273814901229142341625675149313112243216166213702192792887538549113558087647058520358199694830853986448055801495245824160890319874705097518255189118205925554521598264985932946408835353098404298413758384486244535616873072339233588992083319957257397585947801213433261090244008040105225217312584323960556660352939687912182654653994375794679285312793997658337034603878810292286469882041053949996870423108387888689295560678993546468797867387117375514444132546201331929772096785691666364181202077882459732412107448512934625534426852175922504883625768228827131304671654686712258280576419520163110704272409592754259683562347700541546147921830201054377530407042733564344391057961672657368361915512856693432087332573749119740774654104482497795080311745605602939022305766354019034801764197193913121077548855806201864199452204167492866572931731214721194375254978201121036825728643622288577832842395059083984737321789214720109451326236339608724288973611440484938533846092267130410537045477125685311859196369207706542729765543332460635957241080931038923499121776320731770094454484228535930055251002104872903525727602409753864770999511175036628257965269227199404205145368398079061799162961633157708209233241377215966989073162510449701562273971735237180524447224283423286171247365159596265416146073267493477891848539280372182999031775572104669319757232430244767287872895895066790005835158371172361172192897545551319354120709796835556239604650636764177177859719076745746926038389366118448997811194850708201104786146779263353107139602990795445319614233720673628149713665853724865240326963671263175670888558086846069929997493704369557829178035956465382872886370045571082859480966327994610193973849655218326825269265343342860150995265104134387857368640507745746173726927065745527060901375480137428284936223529273406980240487327076229302406211849007033887975206139286764153884913784521855743130646376840328000292005765783287436406878520501736784568896019901611065192020662261787144022669833926143908191307220025260451726352596515420791191221950966019658961594790869000634043727716128708012498216344453008556936800560515936425222476651523486652643228589320463023598213717361936971002783883991205639113387813190925059997514560028653480047776452308540665609929127209982681109061618271939633709722200512371431982832012473315279343229447865589842029885262107002389133251397773244773519434067920556401570995476380156757539267889735429221441529672451753203986066610951079549081065799665016589837299491857778061132992506279490742901046629348348791703202126172838945817235859712563885992320399603744770109988892472922412048908237486370318204587879252691229467898697999743134895135938311038817711061361619402351111609273256760572864501859185943145264713755900168751597200429695590333048118421873491020130004906217042618978645971610395540479688065392827568777137019433894563064958636531109516679440521130450127694533714802265086484126935205768690239561770804087706931807605003865403675650784452438992227012962886806369511832934091687648977097207933829175019611156627318607425186824716847520661010473366340696043793238850593896358886023930863047211846511221803049510732658474669746655577608842650992894732263206436439618739946325257998430672041137365584982657867480499768449089962067912698405123277300267625538213426430311040432591766564197913624989850399281131412908548934889041559103006007302858859938125579492161652020687157589607323340344107507271152774948740299259522728783515871502763310060591015032337848095351258705943742454510133475076755473603520809866643215763632743729159360334442292555084818475826251095390623434715293699888961888106546351787664357816128792969087821182177809918410395309442680303791098852184396835872503345023535037080415348831166273722868293593428657852365480004328801307555126366211867957163519911797603463825524985186154162559795211653566938358162786688364420102686312571452303349725124354889257991976609045260929735042784486662300823557997847619537617597174488623245774869913478409029705167355614122719484538128165456773528992381340965780042980040074175485636500056795509135444527638960081700257248987759666386161631281248309315256522447879761875149017883352081439395360210776883463763807405802023935219273171451415364101257706090093695018063267449583580790141497525526454377301573835439455457190162679649364957266929133318668121624610212935872850700810120040832295136169518229929242989776933556545454562874322853299516783418734164036268124703736744208536280591745256045407026275156831517250635908526341513685201629698339925151431659679474174160293341957969147783123941239639168607299308939678336883920559409997460872141856749751349563808704385494569998557554682482673214883906370486013369156013189214525317202749107631934122905993840004932682375935379921593835799659447443849047681913904508601749986457158465313257449863342470775838724891743738950118782900414985766503597836533349430398979802502035401820764303013197931816327394146316256156680683448563725669181289416206524181988450107476376190376706798066137421184510034712935820261387929673031520722404902153817383105540220125041151951954813992924124298185103973936056661168282339013025632828810824545710363004829789917038257711154599994482765987476138255786929869363113457629436933563975896544740760527234662989423424570069759129506309679094333925666476736715110775993489109647689875444063616247731345757259904362460680025189585455604961999945720156771505986859226629387204200155231960658112454768351386969958641521853146388302870761476754711054081389131960639728528475590794748760466056883738298046590648764765937718286888352473151260123994862985035962725515762102958158651183092736396503523714192023334146216279521561573548573872916111363917694478662757256367919571845955337520057572096437453245123193672138648941482486135443675095998729440974418588268224652595444113729442579516073541528947858429421417859555819379555841210974361907436857820136489944127790399745500456160469899765727832365707713984361171037984847733751650898165799055833089796257972256567323215845592695321249364468628799064422511116510545440353227725647699396561606363828089663457205262892718388016467060010588615859625639304387502811112666960737926045270246818959774666238889678957124640389453482487110826578275764486123991941776289725845718855043703757477549361456541311763610653155819403538777376089795211820220442369578538230535716157592998084159795545895876941295074518162351571740923658316460946852454170079166492079600551173791454603675733034080432382243883656071216645399364156358034541495637347759949559281079452191829669432446355406791648954372829561788834574791843900156977536805491191159533588819957645972079001493518525515311416255838226372396931680264841190682171596794764765924326718649997977561501542112338540158368056049758350678023604605401320447711147022157452523810616861430933358679851211376676089213785692722972475024226673508277104507562591609168723543870544058797126317456758079036460008214621502794597920909023889168610795282180826952354660372140226359156293445898721250347540569578082057483891940414742347078580021688070386430048594822920843718100661190556026846883099184108240355350116120755361931240396344390472920631702519179108395443749221603864039699507347995927352772339207613560758310761166262836410398311513387536172835278055270211461426874360513476877412285955005041307822833550899229224835331502626979300738238487915786785278718596758402089968460300811543724233729052820333326188203379630251088665199584725337004606887442863894723631725153313940308328219717662280327710182900863422087528203106228718770863894008760748138782007307813378288335779769768902436525514466625244966057965310878564341850704021420445917380797183012413983579438277006565922983009856388812504899579283355846328399490362457291750330185904835270684008649383069671603212011973539723472383925051930595590114212314733456589418514286282963966688782331443995802242917508961669872052470453053548981833278399174660621608610076091453312371334240714302990396605382719849329008258705991987379256325305820980520038920750500789951179142384889407405525230440560358019919687394349702084039035718564023518259969602986226285945290966832489772117513473540913039634442468723600460353880558409596998690222969457053968742042860760237053915057318598935215765291287829072977598539978949352143430260971852692411765886146274584664800082153131466186525208364305137037315007962153372582412456486773370998011255790216256317699694764559364891522056232532271266264792604495233774902042033094416239797882885643239477385878526570892398781923715059569996280313544448555003990171669813657517269202457742503914177224856587274974889450171436798284181557638254061228289255963805556120480307097478931657130408773296041447185009984589502643696328819653216331424244152371907017563766804913699558887710547940780893294460100503157439745655333386054430459012215864234930882613556026984646247888006719006003317711523364233677697541404710373492200770383946228611047858555114434802417991309261011887667288474968531044776559005169738889200454633017564687347738839232878078127091856658180878432656026109896950656181868444474501030819583592122755673447458654410570966781374200156716456832530658006151768196109003234274570049931513547305551834404110323636429810685941529882828009911286958174403066940281456958623052891095898750906006146127354178068326790534472563408658807492242078003875518230617137749811525117780870629156331870753404332819129268565868311106863038608777145947032705402627472425811857902599974992081643590202728173724148780726470021622036948453769859685202010209333166782934416175570560758743477133075868810465036976014470017802066015843287641471422634644683652612658436317745681550178142770265317452482134638128506563904939645429136683842005623528411941169075778166267881401526505764776088640758188429249649537648404363033599768670023771159143763290085641165880993359983573921835690419667795344498757357204482933350853241973411394172820699010201850926442422125636546095576004720630886991868179467374095448007220983443779242679745522917051042205870629674504381176680735953658459021920877650403345984544975744662313551600760790858774015685904809338048307152305174335248296964461024683886856955787091463743602683077000064625347746294703263559064223620929110992142678303147954711715411138887222561775143699602109402206979997479166647283654338734794304127496036554802559546239749228886204854025275676858034733244056721941941933296332722297457425375759827897489331618301909602545303915738239303913177227768090872341550961788254596142287430206250602710807209840483250550696830666552525393250130527261697564891431679237295045787395738712353395356256367176859441612799101797281968124421582118762785609719327404184685665623370361227513750685739006810493471286767026467328324760590506649012132663277028632824454001445421942692698897537837813256854424409115508330612432154278947183183196392850682679225267424615463345839416311255498016598238334213438501304193888866517035751490195533564998815425526364964902579012507067189935540112663617521569012777918598525060222305919684449018660692058385782042624853841011359575816717075139531468685230119292271642102423606739732630159754069137298000770782143013590024750517803150008952150554469356810895994542381706268679504244516300355716483011007620203616559951002790684973563990758508416172116683285954358017270632897090745385431042532365178095113581121351514659164507061554231015176138723700633458990126259830209171355928962880954305323002883608284557079049686599647880107126702956153565703375273821294457998953835910861169252481299445465303451332433309374641695090745047030002901203592151405866062524942210726769625371251952243936415681352391569681317843790240450763270943139959998761748666617683019965556403051667266948785534907244682686645544681098969200796995796522099259593439796226411404546868900178657807831554528614903781901488502334374549238333181532826686401611988778375342238683223137251925851025483500403177271810450206402009948056359622101796710897774576231993871300278520902977360006635086975818974661268782425022882628977980326252751467428014062937940920941300506092055916030269388406175745313937358524441691322056016988263959049005533304477594515621800034779686747437662482734066913586431161548995338363981496345221891197436263742958239451957082607954906142661254838447278446907062446729523823432603870028505410787177494676094273280052068529500906184514458852742381582478368488835014616938355263595342671536003056473959635246563032325190440409440125405253310684197744528942715016811261665075895691602076799832170106733291592798235749705365533703540356709656910922311425807355649832543873870763821279227046651187039893559111489916659753372265657816175496580901909509624922832328344883037151105026435566403586829366601923240756681986501197671160522360057077796307148386955366066435090601259569574785970523965808209882116344704658421032610420489327917633798964410745980572513432077214531628075055603712174504378895574814140201587582030618339485963917718898537178997033759646193522414568255247100584435614121558498153546039181012205445712954604202484572423426886412863978774304325807604396267419535104957715842055328812863908458103344930099662421989547391822449438476099168356917631463913769866707170210319949433916306012115562706361537056490482405756251752450897638673253750980734438719555343346296688218419190143283076968813190264008701449114366896980868508135470295835806991269934564644259340093281081686077310855447711694238578673400363760157319438294828497173878895042102025585202477972026410812857301564018536081998781904206442036834442937256990561751553715383190833431632931713707457653358257006168771544733218360391843023455010270997259784190299508855495310098291145417162588007626986241648467062888327645776299989834875397005968551643552931857533996656357794967525147481417651680810406957881136639360377826432592671075501627315391203203484491036719096269001255831179755414227163771190190124117333401885611177757616825100551052619681019263835114097223237923839853904139478603664309725916697229919920581944561873234133128810769946926907058561784735101661309283605095795823429771816771562972945404317944354370549410456582814154769097213340054670175761820151931988283252263766665090937406917494138168063435927672304133818957537201636870674166105220319133611665508569750414621084682265659191148039069621173307452241353867987716052181406338133535031819563335886122125278725990062325790657723829090721815187979627951322503491109831220108137509958382795640610459130837080096671218342554611272364442016711070812778247250033907333323432492445582056423301435451441113721810574698313802714379254664106645587330771670404356765990320081506752896815917246566283482348427922061435672165935694499427028902073659867158910516738017271119840847935079420490533249099043774454740007608662154933105439779039456356858249453318580365898955761718472442310600281132698405483807157254568260691316382539818994686116244129211291721879018093877853003462528338641450289153707476556535391253163923835810594742364366836931859043226679264757257432819800004119832426037177952818043612601953963139665651519772460314155748084182896522685133224597658153181087112877485415856999067308869454964262358685379308470979680970433511881843462058272528170498028109062671241546932755087039570556631153150330962281886258455693102460529708251163053813327749337227283602390251272733194463973173542075806969158675504542919619679883293609929262122072911532885159550906696227171897432901776240093787054170562214728424677875439724011984900648886275316458280597655093227093126151001548938895262280782863328181551382944170673675488264364985364435992967091519658670387528284082147066837009018689573405067719743565403857072368617667898545890283763036582456820212688264957435871563655356649464116335692295052811479391408808645848019974173126638572440520561968566463050302076991906494266347070468025924619642398198098972921308333268838036822890153101533703310802668259922874453939160739178956692128322393808533054444857836843770870684987479253051464158057525175066893340051868795671670630541738701912921144046934894773362050597004347689266886834148417823883062653371063008341353532990715697560327857339052230479554186536489730238768977664655907579648232552132863351595389259913787207712217004485253054606013256036864684412146286771814257131015105580799005452780448885192630375984812820522331624253511486660336391446335779408775948562232336280152882768847069743651189637826248416482298135165826692368165779250082402032779812955557771525700541190219875960216486908124322365044015009683655401472881140810582399727345264065979379666688893558011126518160216488500698262769670775754465819267309669841441629628500935304776996873671876653361601906664373720378331336446030363791652199278866100365810328866466594449490461669006801125206282400107905321980897349890655445045651005245551315983710997036629051104335178450138687709445653816485101709790592911963226820403885800347679808345111597658425818416130908372187207016190557655104682900693952177259850638619313383506118255718048355816067334988738569161218127160195830269542119374304612480905763809745376992859211724139896834674524261118976598225698913436893030020293081171041636508279748042386600249780825669453561865594882591225528005973863074881237010279138347348693767041220520277255188241036733716283960520799040616477762236913332165536609812824566439714085697791021590351588338703555700157357469715518591016896844068692803952347045838423357344357794708561404684101986284901011550246314546973170074609121362733985863781614134058406559083302314670297130445407118104631006793502011371623243938036975827464914834345125342371662887470097300703182866782465289499584529055214709095844843963808821119334969070625428932807116574152052105771639870597369740389566688709251094140711441570330118807804871128521895016195142548859289543861906843360148788241827942930636908935649287276908618758037389624166061888683429964498987946906111803624322765472735331703865606522332124236360592392987238410055434103815172322506966988852721760966291072405386402347907018869503283516127978364372482806527094065264230439122848202449848520190537768746751313208961606450833944056107861202750875466869533594505660769492059908976860207789018937924051533227181946718292653764049750593679848369618747967495046365906190243920399005834383222535781755622480914089803588504392606644277918777037122612239283042198216719803721453191991329377395933704623428491467661747108832834278323774268631255840293046747419419876253638922231513299677090073892611491356919102453717972989242221550259123343519416612831146587856864960917348824187052948798486204909706836861526544908997572242095448054064205425121880987814141088127360979818385703952020375414569933745250699062703282678559850696729807491837461838782167323072319235292352656689488028666217492517015012835809869011618547542830235553845694388498217216562545394398768395664279525871617773140489414904210090010184842248684141912293201088206525906976524380260114640835280623423223963530668756372197755089637359750698105758334228014204438183167000540856581555603722037749066889131124697201194207825149315398160612755450277679082131855662754339389941192898568951567955535114860583729413249622488160891497539165116315356573476595019518994216363563005809307365716286355055572026300694933804969940516514148999169122129398834758888720468557752628353093677413380538012741481834427545413613654334240732230312668118240980446508302275677203302183495101002430939524625992654890116107713928848223880317534731039398474075498911840200979985703220642133397197035854366080797466954213408805874924017792555436674592000528532123107689274405352066527330673687629482062229742290561034979818613618468277835830968509579734300923668989103626429857667262781722030559543136901844288570001116559828403390307930713684415617392242414892135011106256210414035862849984576785155728424968711505958501337521052743740199430365851904627796164015737346851390444096319930876667621910387229596430418707992656215368982462443963460902956532939794905577181204807211347084974421717524198595598424272159706073516483478650267455371613864669044399947145704593038949523310320387309159681500635501275526511869223273597733023047547474765810300716058380697455727923785238110314605645102430302346821522267089819419257245235922060768276838625664596432160856336067816160041491093458857920132167018833335214281758274586604095069681844771749286618281640048567391019573944000576287617292516438289412257076128059431535806074714923670469440221888388800602590224559266629527226271789978586892588402373560143885833333621537121397742913594681778531637183872058311197733458060645136170641005862452251746334510261279855721640673896416862530462499948175542789821330127197877675755824539487393194078652895327575052175052934283906048710803186764784798725247434262232845752625427035140264118344412467195599452509446244442827785911628607311021567514962286955740486217054085503055282029909900870355800879169145397107497751966980970558785120096189123785555000178824050931168509131039890558616884297295471661990980143043655351599425119752791117483248468858569929783880260706518832625052060473600604568956893953783320094344083803790254152355719172492382368824138829345391074141831534942711781625465446390355953615959424522409225149699783830364076391947708313189267524544813687457481645853469053527225607226499999585382163445297088475676251353233475220292650473809476061682474290571532685539930734259711777351495449512881495280135762091067197314308215478210718200425591350785930012869230110488498526222664958781192207411709831048533830941592154595083168336750062108753746990020697013641126908624601947726516195303958194548746456352261583661263925468484812336385353029884586639804179926645978437145072492349929132817154440824831431189173082708360026431710679883021133627964771072092248500566912923018861174131366679886161469138905896250067063816959424553533639504247558064420469187355462159830754823387930118634682475007401873577088016921327513126770771220186862631631581013249615405185814402548043655160626863287745075307817703290472795087601546365939369998892931840083177881412212459485530577204251477721363308330820644528115541711196443111347702154558014542912152517197457651303191537952921866750840934343002054795247833740824538026661258144583261647936411020415971790036454292410607942787516280812914738705491486835161147413467176186490622481237256483003495610614177100046474951663657980425010053815748530304815762725148405114170255362012158844233986565827420487066244988542057946021723791869172942642675919081218264117065050860510436122410513152704147966604900908055810145833164063786644818750878593141141168307907036683533337680850039311572026144409319058911004497548075505902383739457166984063800573531411436308601089428090759134049372280857969358418370929752699950691517258279292748210950359793862326597635153771763718575507490380889840071338539636677433234061337384594717949421680414950030365500937108316813415479147239575756125267362896387699961712770327517709842986186370938268964773695775028300124861590152752527923969901633536366135949192936125336504894442222528721141852663016866147504780905745997290461559281170314387777381893095975011905690670985335311537561811532253116711300173800724460075831030895942465944881282662659661783219652855440365387035696490159225738471935186840156991970802192074701140102506834234047920730001622121220614594666673536119630058648121300413788644139987245531507732311345466151266966876406230139207759454477581751931996996185428001599554431726868784332322822134222515977536299115814649427891713016611092788892672999067205200266113641799206702636131262264298599638604685967871608108789242031654033724604660952885491239420810467607892179966482826435219496617832525850335790483512411622363011048740924085940231155299509494934483822096029671074378302801098044929236184651507034140890012149101916162039838360685240772880611226206950415743771660042934029046274033125214826350308907183569684065596227527681333497113391652487299439452054560239515282096291362367237571741374404252770027576043356574958266289195998922871279781509426804595112863935405167166098392879525713379118103622030897361980540565393603177062130053419187055656727912239610833268334159903462996831113061972117056839374196487271259322413153012758832572165255841250844296802503276522394227142600509216127205819651659253922377202504932462349948100117933528990576266940923553160053375489766182348230197488303745492176590061693680110376678712684245747852499417439749642318265642601704605684365180154397058747377291970109511432226614650414270482849570815215578116275312168704364543959321567761988542667820985282767147267580944391478718042883137972929973783080366865236580381435454146872809953531075586657101431154727821906541555094221881912984630543173804040115708638032341988948815933216705435754984843836230931141571146446571003751982820797240890328056794097850654712360940151264396611992788987116384116780600013131341516786057380858410539505526574801220220269573254293581564120005192251450279950374964823003161652170637470447556960070572951769986106185922853557244948895118464521432099688925874691352583275520093303299589637199736132515178574819236340982222304700189014231579848165444183077386328205247280866215506531083062202128748340418012354265106357645538964388000387580928454887397940010296447011483660348051819769009815830216390467730026354901176188556154438102124266795067520245255672613040504917123834755131004504089052335242721058527219731076757042498634694021583650811642767838996955208493958131772393587277615875515902783208885914301595539106673035271202419371696874826437963860636319934572627930231788096192799562612309179543858889515693355455072784515514340025311557895083801636107057177212504914389390205197600464183535561951858978416065013854129572913375394502591589774666588247999947055232061191700096090161472890524385570028136311112912609238509008246717829464845891254346001997145443126328741519895263978672513456306355100237503973337262152305441376532517162695194462431378214489738364396231610560147774178960338985249024059050903206893573801637371847007175891554296148273584256205310476491486416166138019053122609314982479232820191531036574209611863863433284858941788072655480601714788057696010875205876855365114202157315511292495872892285560758039436667698566865520560515141154732000509289308680448477619604103323600768033387881801564604240235678078182341863851398286905062448181145244697990084699543383739665853167308986994733111630827339774609534174653264882600498679433004367381971590890479950678527591530155910344153113925673570881882542872692692352963278072154601195234293432894447169130969711633287033603050188117561728832656490491167792538716147942580727572740189459755497136682689649731633677566698876879554642325304409169592595262324579955837462312359662216596628196110899128072567633334965418562171004666432825597095478300373330078819793700720604229753200478890925662032059326306648033344973337703934626171272487098024093341608424027988464768385043803605755140701566492443767795575224732429898816712969883284336387281241564722992634166408260977287855359054313172596873789333198774648651709325977134144348509128675448516394254188400474808835891201025959627867154604439088352753536140407518922512704092968203354099229421596862424419930104906639847620916249185268925039489642317389619093681888798830982903371818368075052947450518321385195985058415017901399369911515532607367605293063417236411401020867288650128284571695317964130593962494770724560923455840636696479892040237531789466497256935748937736132688524803869453767088468904582536843459395879967702539236542169812524714628947021091046188568196617173739852552434229555246324074405453206600368364152057176884433648783443660861150363846694742573038442681426988319972676588373993407124196219850298976682842577724586251923255106332896975674549037134415074747627710968989148552561891205135240844939375471961724088587568660916042013969621451835603318847223005211806088666680712660630014303546294485843173473073316412410131148610419030104083740766938027212136393227204387209284281014347985902370404977558750579198247879503187483462226160732269085095787327745942836443547364950104341026469953943698811732906420763675020627751962784922432771185266567834855302619698640576731500198096026476427181194901381236375760039389879291569395619592745884811729949983449334065430287433507463108832090070618647179949176857694552613995871054124574475278492326455998011831321346494660259743454375185688950696241004228408720350346496508593344750119963434882969423535071322682767721233893998628785549223444558723100483127704945743166554853551999542257343509508401197805720299883112238416260588922681730469558240571543829413027185249749666336037677504704429449185568343548250888476645717514721760982185591960593241055156352633203684234830228490456590209464623778086545809444229466751834445373766848268959161393080589513417699196599353976273791085105261205757763346077994303834235661722950140005518737254302252349043855702870826628817966322446978529589255599005321961102310086620710231538713804665208633847109865182640218137611477349223638657020500644384262504732058994835592412307110799306335883200463427531764282900302560962676466414206125434161901258320856564426871898811331950128480928663867783290185686076337778191255207390195409045315915186868674486277720254064154813487825841093296214450532529982080788806555872292897565074706179844940498482586596084257076808509663435269675768022788179962783787839178011889750102329401066514449858503847620637716799098278869003400523310676479980208681049860311431811833253594630551823843690626631411650122909111685191329203784548314931006965352051942030143883543144687490883894193116731662467902919442379611716638068439152792238452392181368577789208140789565775164732367592984325096956076146752841808591925860146608292490947589281739978917090296474023018101678111333722543111801747083000963555714626529993981407057637029058317491988364286255790991122366533095784165817621591778713313122257733304782848731603484327734501427289479421957334431004059278158148001460286141717191372160475420174407338371580264383100643488668504822404048532171257901480478837950094240920211586729663150061686509551232056712601521755543572067613381324049034364874291129033546004921597957203215231401776410724434465389874539906851808616577331659711677097113439097855859361369786118538181479660269235970316461645336819920071050386199448756837220247070761108866653488223988869097792208951832921173144898170032667707912787404339631616645402781387087751917555115663758755166806547955586062925246531485427984445571845059542286078197837196294131615136284755191366231927653438810262997563920554930174644607116452090175770310700643210939543424327217213430362446764656497905777203277228070376076658372655850297278253691434669331975250648712911161420809408387253851769368847674466856439539674896765773629329960965713747191347974116192009688117017932695701508057514670928474152050963758085677425533190328685596353490073477202591413697269526012884997048154529895833374452172229150947600840592359340819965908361561439062164880632508070882416152861960378268867293956354654092617985092112252689065715640746393151258469315133299199450373719821719888047781187957764626584975310167277875761295124565643597580228289609041228057115880977736629000752518211005683527172041509384803500825584451043397973362451269640868942600058182008760332554086469801563950431082180268663887840372581638665272827269780651312483802171999249144929646430110159967100579353690470976399745019891862287986284048271571344017608848805206153450622920398788928476761685834451191661721006942043864582648814843519893820461503021011803345981814486691012649263683286034585145914440707231751035333632481263173779408155734011831401729064632229991596363196395462125854554757318387892726057539582622857601999420092769576339641779354035370922525671216700255924693457628912064668071581448578633921188901322737820074825717160716924626614162381507153374458992653293257916434562979151433452905443760355847289312716743891965759709592257438876024196721202354242428324690573614699878070511237140584346867405660902759146477952233368308218855115957365714519625389454745995660576294874451433418426592356580011627188929782678718933863285751148194821319051928292765981720729884852112169582875513967330680774686676393365086303643718615821588755460477087670500478184163633104690410419978783528788087703441502258583206587160335274478646248754465409337568287494841599716731561913638525850104314162886351452963365495666530198611592777211243166600291765029232239993346477700934723859002649733623636731104131163410666793892695479500400589866703548079478833016486762348789081861573149760151463374657244636333097309975645762432129870778569934864597595926723427792027936390414221313752952074152502221660967694187067343219435885814898150304871939574529911811586173104607804106658832244274746220768964618554463343828964010597803275931455109691029100452994710326274219391793509236745164671125353575847085764901411603235859202818729113979760770427508131515042090748934629427476895801110440761421688544362233423542195827244735149288034038161807271048169500050765574095049767745310886983401786881673485333948876883915925777338082465082906757937203999574236420443105437742040974452726509367083255007687969575808574911789231108655884904264393309315382493781629838737119487215078262051344631823664235296112849049472016819848918254255609120339927247616464354792505086899078537024923521528639471245622757867446207268094949959794683078582594341432978327928383584459046792185720004685945228717435413802969039091033978905891847429271261508191943013412422851980766963601245512186588870960933813984278342089949085009407991039373513531859806997620440163262205608674710246947790947363738338829585187664229344508497175262877782965423926230857828723828621157222483887057202811116435695099635514662758084131482344909265659262858130081243398354280950010903103338958455521633000076888932170425141390272334346110569948796023051079072588734688762348652767400944583542849324086957962071805377565990822577995710990637102252798546733540472755158846210069859013106746206738425009463435441976382571257760343242973111436297018328333367010909478539667452742815188796590907746120629388490269726087849044046340200841172645393078559217441907075861010017833068009606072198974113965479389480651655914431151503914659390713731228069565532933706411013259219173086775293871320263522812950859980419499031159896940908256369942155466420647502894081582197438688938177335667694651413386807776328464213623217841154906620020714286280714046487618110749722561872324746309294575926956039066614971061386173408121176534589205420280979716508656973645260704741980403076908259782046319308966259019936204477842105641442505389802619756747103935299121796423031167176735099158693220869513505779822187400139303488403735876573935538008014704840902766619276182006026093773250727842593337902506022544596061427764882250700534660313039467234541367267540081312353376295880735456450122667795604920778282807823003589770739588591796451370730587081331229405196559219367626442758142204051217051015925113143592998083454502346556119887915343399462426703877188072920885697048662958352231617685107967718962518110193103497304712815917122938093027184544987099468485851740367318189394288468971109102517218146563815962140926246639042490633176889773691957324537163332413918123666435361480637345104957469091932090129124869027074423002411450826635964333924404486863075687236570560183573659607797452102938552297965438743337069297162119301836472224326610254717577831456741389996196949023450585700656961184986976578799136646267148017764047189989497302429208420149256172768073949412309829830081278522565567864941902586606688695171366773339378618712079934174249730321011601691860133199227625245194947378431419876360807514538366537727997258847474020548273831912289618089896515381645839575111325562498511726582957178945528884670462589236581384220209794807151792948604182787803332842634030086361805054947842484821369210456528653118753075514985111921099625253243699678775197530674180218338964957347087534532180107497885170286235118731778443072000157124362428428647626338287045610599181744319848994780160835473397455690031057899920073238179824925818860973850926229246954033201479350523758553927218288883029392537643445693726340487190785811676200319258321406257982111605065609469371676361605696323833376448357602694843896570387220284910576267967881665144962733234475500419432156203923168406075111437511820364604329290561669534113228350538651522651373214454236621222321810933744804077312215628080732360103996489252932006345380790725753986213328192475992362251166323369640366000425505587523694474618848627540843628430334222197665304802134143026114058178116710936694976140351820245606216406420292749810218857832823764019458725317623779000177067833430681733876162169259061991465766468615769330333605164391855751712055742301494823855540748029320058555764696514937081520440501819097029922181424990071816400578414470342659387509127166232192678755122575236440070439019727824645431976255849430432253467376822192091468601717380314526917618629067517527744595296664072082841329735503763153130684490383910250134618975856149676394969093165757483901774483559792109321199785036606898926176721590561044195495673759764793165083278489397056132541233142075087018713770510586479029059185957920454239336914769205957774595879592495293888028256101365779673772233479195885096159096045905665880632017422853120612422471151413192199434032030415010173732888716644581340333205061926651560612726218035341521015498923710119103491886577302274779133176664680164796338857839207372960286843878314453222536943688928184131838509416510112609196133614154927874657440966989117286584659531960908609358182764529467551539705050993801072297336206205876011801455412428584468158694850303497648396976074970461142485276394822461943533188651712126240959454484430040500047732408877126466488967219236328806090176854340211031910972243423917547434319260963611030522791683043957414795764956453805023907014014142472912446607565107331873649600905026421427196843068229105664127722426252375818146112570206902288885513210375579877915704779841656352832496561186331000133549194559425670722830559975707697047513239727537236684025990474877583071719133082463324376041590640823181156744476558712495615512209180240347051541359652616608939381547677921735574522883054610577200135744523567371238900893294054675700545523046322975769253953057588069909895327100445858480758756054878054618376470216245053509416782890828458957825627826501587776903608682948588749765140120851195067686873143000181137880049593279888033558958501937395452524983965620386616186722361872840920742775108052994416020309766568516847514405113783451386790296722825919765064777460209443878710440685911821529226153927353211118453736731268118846060830902743553418489818299667350295239952290393387870224965121630635506360116503743019475372856635372336996266195904764935810337008324287882705908570419555342425651379782136706263569704496473704407383521874809714252481583336753580041102627444964506108333627977986925603074050020782268323864020159873533096652007803903041357240532238918586441101357908712159599491526540464515410457283349469117257896600825741560310768121069341463427770457367614607473401754663746737957339458806756962676695919127594792991629255628098301823913826668553990528128027431655350829850046811884394919937460371239580089711629201529676852569172134070451262958602692667934662524137476898260115384315297096245865013090841980382865808499652482911829931466642724595426475293576372645093922446303064971295201856278896278233273409734622286056764448084554665784043476998035949436182192059430387384356627505164396307278594531718075067563279898179181976460652072314973689166205816647096976409892553897245002970653779935297917709466818531769126493945842929645871427497372819010917179014918534031681883988492844349866065007578358020599997125286796082959496805501615782467036623403956906003623607695552264489277915272869779763536648122489565819121865295781545286082438163203621697728265118688661960307796302206683363911336372150227975605984723774303946652086979963016787188001591377781994217981854097757262339448841990822276391094420529550714392258285801581629832218087835913963338840406933053704276783420230513903542275250840095632708773666306855412057570296013580212081411744478675657680377126903838788949428540150713624898755189704534177220022617786092516133844468169783722599378163288741120205535857801838346496338321437193835194972232171453713479272921240955901809091937097789876265491874473970384631817906399246514520961600261661180270266158440470539861522076214562345000455166485050446649333569284368568086136363146560294228917793803878597516531217793170663110993226240763724592539589590214675918481343863494983245251260685522511736053647819545068112260573805564675259748397252446921889012116786223252977320648777628409505733430166622554487420014943451338574238711153842679811131009539753909402377800153596932127490905359572723452319096542935109974622535743823613878315328351917149663688054721428370058195726947604645645132663811441869964645770227945034655543848675220504749333086287507909406677711068793775668551461769001673675244638049070373658616030076519813581003099378637716548186452537694935382022771828872315826256177140967129315612809997504717161041843104814332141210318506272707683835583784106105834083509347876594072384811092499318080204132248368726207009605103098903841437944422275294026582740012830338361285810288173500059550474016747670388574918088000815828755190758519997987561260186241847448633687309713472083812836736026497139651412311898668675610488753704721317274818077151094418626647934554823120169078479012944368976189626637314944680958642914586809683336080769148144690237169454676572365425914184801207784239948657672754665348853495956493578840656129262413879992578362332073636681130024516551040196115873678766547410050113054301370639293374805636117366679681967452489429318529165595298622465415409223187528915556585788048479038888319401749947202098858133459373126827192523398124449802743297801606105833554981190695228766251499659777609964396904318762702040244642028520582907623444817277478705013289059142877460540937100616441288986382210767707003566481817210641371351972781369536870833672233855534509116548971319465551290742831325862913497187075255265777112103776082887133957190938833619349035312897870826836534293314067589387067335109315526707329048184829327246592675963555624532203445987691332936528143002199454213879579694021844001068817251532970521514595563359075513717936858382089175398419516223088201367307666285535752857379438425004458120018604883321579248028139010201230742861605966625887362103991772280946659222993982584088707894824437420418453863436773667702235678959475174206417855619473948642770372921544993641277021254027206735150077817051803580125469853205612170193576911881507301856801073178493221111213295482284877338240550466136534965163118455642518234976688934155686047356367283537893515836813682934954385872963808346363378158689350336780067328182270874810713924362728263247407942562919057844756350322493975933348936915881812377638115610517856183087413223780698857212286163659177452747192501050685425335514848180389063362693532847401146708869365489833116420788608190197865815542941837850863629719399446603263269455976238351392954145027136388446956938765285176803670140588485530761794140050760642035385986113749458270352758961696106708042462618014563813376704338640870582358314210540526463740470256024879599918275818047092311318917965652018342780180918787155856400923570278508627775645387792710943769351802308344672940938062326755428771169157765383846582067826072510522893865842587812816327052426681536427412610227494396385359846314593992901460825595832299540066282782976683908732303611737158840786139862937008867596468416950282360322196863503731319963758706775543328702010127715751294623259741713561364123330632340620684020174682033410792954657939096653815077644878665281864268367966750046164050376159165885177808742353881766111854163104696076858148562132586023129472973231954066024071173762765846385142595102919603666008603451566513047347971365859671867802164355609527577118681235626742226938649481493780839548246237107960017581652978281186187523644310195857707653850751357182585543564517416383678572066657539884908869420565976171541164448681336980386593295030964429108934223750005403875862370623852428627815242630389992974330563981520885942550768084910045906824474508110072911216910744172004983827378279035521255090595208471219442440685914375737230570887335677359337524956636320100285376858450128119312842873424984780537329204532369302343162891027561051710992471712952184820396662911664495609258037265859979881810554714719554384796611936332107373752735530576904336299682161902227215898248455418809684172264854156215859791451567553872100799560070767534628574695953187146548412232807455546830855253753954035339170414065772909689374255330801740363075403705661891428460376470066358965001941586007830565467740835443882696944652279631104593544851251875489864561222079266869351998217431685937730807947076880240512084938059257662378566688329936425292428489945543608458965829986977203355877025217254236515637885499286291463798964903937509662749760665252690080095836917076066490907761663808470844982504817049640220336611917708045594652692801482280198035253604640596065280460408842598419365283233132232892065276879626544245245591300119719209849886681694813379362324301107648054408546672070745800939945576865994923322060658081399081506050080837196991642515190376612735869082281666019757159701963587556634169182540869503641507862476796128257703990444687709532790533799588726604635914940348311850597260367856473081530320403002179529974120536288153278106990626079693456854918436437594190328307888238418566945530060677278247343146578280635326037147726026212114201837830203078535842220626323630274656908251463194099103153017339125659734305209892117376343868047045113776128188064594781131316290588515447434517596625771676709935631298801961428383634425422336039930291523916350352576857258120924117604032626252494587536833380098086437614322534115494237655543627918950151413222259610238354557111818115865060171202418468552704336745130753083210962244203095636677801523716732507834995588896421863305898301266962955730118391845932412086167741723065997726285329365020855197904529524913108936646203209477408541151222545606966801447590624339263757314219543597779106639977398847230622056106392742790658903092168868202683455817826358875080886200947420732204502017842959138773852760293118101931122409775096053395014301431106190322340602436587981554691325372294072608108276248997769599247480221010357041071992885327189276649535365271268631251654389752599682188312076421051597757642476534615405929509124802934767412979992052822311654744259657779875153608072413501196318721429734625432869202317775178006810438883877869447702050077252085100460683463869977232986274721064718080483885366588504375023948245959819383252336533683328753280656027582608325715268381462074128504035484854444072626650868339397132268188887207560510233339188459825255203852644998271410100421273926130998800820424436455983034843327149828753542387181496735134919536853616992462662439328445006779254292458242069404764977702783066807052585339030351874962649234661054603273609358230463622399564622563248982426993298593955171018963181564016126758399023469841729634661311244147071212207901861433118688608779851103434368723917255395591848917232076146356294909480121629345702139887101635498518800450817404331314232948668267163839461977803634648195617478064717295565686491906849378444979587197267063552931978825698987202488246172253868650275710173931673083791386082998992775121291756608281574514352360706996871120158805124268074545417772912795117434718930930022887599347999889130092725692762367124152203853932868545187763002370049828338031226647774581425094010209166771977396349209084837519009264623475112639761719192483677718541176649070447026893118243668051005130361574703188289628923720691344012835244120392382703316645061559010823990965339126951972016544966075901474457145809099889535178276519972056622490157885933059723847728775648699251439100271963514221728832999353747387698378777350901498972238647081519198507245816443622419423819704734347966363117652942107247439258217090374961856092941687551115893237891180458999485425324765896527924787619983384627877791492923913230054521940056139079037541220390366595028620979165267575807286893762627330375177209990041408081399164883712534049762501191769681435679572961070853758567938661084237882640513171932603586616296406862251802900578954919996062087295938708714633473156102683238548555876037725189608851871385724128550205486487517596209526670499158440070418877090258841857720351705913626927177784474416699672024644252666370083353510503320524721003909020155819808444201871450037357215020345041231801999320069271468632250767479029462547191386553693509468900620175821817105696518222266544604431542813857203754478078260590864680195055765258421934297494039412413885051856669975178255644458877769902794998793413653789627812993140088014175687414060835471918883583723831739376871854841453928952752962147189188618636710462273852736421540162053427692913652042738679063586159093062587896167811899596367023959465877294422428322737001357222122218538170640338025250776464170432405516825986948553195207548398602089006334194823796055021436395076752691728685404121220540772840441219763772758484551905131728062381005796859180128608920893814753199385478412507685972998310098681664733332774258502860419378835426612469242980946356469544520769052004720520634737210960181512815011713557217232931611807622027601049149541223549129268452354675952277127469823481017875595911620009349188283496108045379476966255053091360495750357543226013598808228899324179404797832971073239628962860884115755859778780018314736057036300173600839558612671493006629643798104689703399489878275029804828517586708512812930265115871548339821111067072112883879565242118371203123192424842584822871757521669577239555818713217287817861023201531090315264853435495190877722168010553981260640874726455004539927409085222448578572197695277556986294783435887503970271752354449939514631235679482089790920265494268412008233616706988985254296746854742963207672123028291156658613887237978304263477432489744321377978966263794042921428130379089971776152636150420926453702466454039950354921148054358451501386590028918003145603206037041854394867417698793895843620780044735470358348656877341616334989484123399634841942078754959972371790286434894150524353054223200212130806074580643573204785152774777607020972696688765483390739732580178505086829894521273854430240419862487811141801944615365402985602085366483772403993257690586900047093979718483882911843212972887030976063637841279794517635950085660945091101810384488557462878387338885860166106336312220696706229054021549498703057714138941393135227813533496093809755799889900945353245992952207477935304722318721398090053151433669172582994993553417213321397633689559312646381863051513720336193429525483055180644347837871019188956615249414037763230590178624540725469023166772380816425166225299231513161549187153743295073513015095008372952674887787411279798897833583470923190863681578802337366269909515172226137026156528183975852721468528876758764735896429001809368813795532512356709133864862131331947427691198534559233667605964477186580550103794571703397734827230545586455433359243617671143684786214438783756698913081307293834508757266854930421465159244820686524335113667773431774191363549610890062193981803540931147359183315132923882672511070635615861558873720488353197561625142228219611788012342098365459313516110987049206406071779207596081169778628344917598029965913615933661923377400638356202204086507575799994643375667080262546160778689712496773755715827909770241260109981514380643999539112667684952429388901847500181321024463684164453161252399473838284015203747607207732298921804080874186616535987221146347055732462379566006451272396382087226118258638093235285101347924857083001191855113340668096030350459355577676862980385755387039004840970194422821875989590306185135369847792374793828042714732823583007661086121666086440980186278573461293513660089054259519035132343165350306978519060872817642744544048656534660812193395051080870193764136229293505350079735197759592884179067794779019886917363957413959096539382325663584530678511891036780768989862582144936298844208758084102480877869897247960100416366115057496638153565458890098234194474775397252392142895343513906429993562799204690088032117609406287039368584919103188880480398537738247675572110014214913465094073668406619635435198196072303001108950990691190044204591798817211618767408256661508267978172987033086307018719640989893125838358192448442270948168533235224896972756556325620782993700803454509830736433958497560094960266140119050802827312664946323153648348031265206168620065081285880639050057288154714863614301088313267451785485307026051414860119872221763528917282414622128930820660757114537991616091166599474635599300277943736762098269435723951642692716673769984091650908660460663971920748316199229343950277014385934848504108537016192166335406400093204036721774297768475870982115018362608095376358111841231444168564133219250847821161681732266316489985729031468546392665414272841131833099481994850820362705696456892402749113617976311087706318270824817002541499460482329644267392235632411261841216429455737392720430587518324364687744910639846018362381216313989591894992525289932725158682997236844806867308409616455170510068747928287353109032982340662198497635595531682409894594940023186202247763030519318748439483720145537875196853285707711007716372898890426067140012372632434166387893452633839942767213920345944134898124917101530067990592672160636776521880098113927725829577355586673081511500243616679736329954198154654296858292250476072152987930884349688803722133898869356645398156681305727002424648185071015587310563820275978357776010292462341712020138243995017732496399670292607360021860214182092111899016421975743763160841357888560980388835304547057353321160357182232188378699759031075098752467828737963808194789235138923454424326122356080947656045601593976366944218790527644715452665510674798565784578792169251057166438745902192451578631661287187734086937701111724774248528918724271044061051573679545831048810379908017847841478339810139330173511503593798226061032226632037418103789878379657381211773684471792546709906031452957626274772309479946338030110052255129462583715201001588584658847544305081758000249372014570136749425259460399433681062134214800307233231599926705926175145128809392304043340966719939332074659619314972573388316909252921615719789769929215108713272652994151052853791493272893050874103145531653645239003364367987879505870064192074710071076930239502936896707573397815745679607948036425030948225461910052516739952506982124599575250409175832429020833208109596356653277304920960896934793519818086842571936845520393948931224816170395657380783047484221132852703787883163659093357526652612300428898477986057170995110462845976159539947267727197386335595476129678013958721365918263053235364888940648333653144505129760248611653011113716975019584920127799028430798245313649908565905827188811028522641428840258182478228395598505106655285119865795501558928483834079649287622376794967945076262106013652519790851937665033076114824829182243114134149080524362104270487596905758762243436539421899389541159662575743110266103365630360941445450378351745053755978620761440761496700759480505790583203060841522302427791612361267104257980270425890899759567117843591986595658379726874876746117615444300985353100560713003036690041734099333103702945286866971737421676774965528474799514473908420361684873636678236825134259085814167135245612087948459266953963891809126353405775789810080716090325229649504592253331407993946571067842627026498415555101105711820350140608600258824703789313633649832720075637124590298552713543355210863345888964899020051275513216299615218577912791519682731676828622162737413935603882278324750657398873302057724116312750172824207163133964454124037108090194975070108057786103249850640448239003684281571856507104421341301960469496426696150074979102092382693475436005302552126641989278722390339732104660840945153816823653252540196567371128047611626192129494605154204497410664522050873424309198287245778879772309592680964208628190354636117033332794834910380786630223774303710434195178243222785004653769732582690510880248859250720870540226427146702607360514120429091562102201364153702799560981102864914251303924994250510545010466804372207122311342423284283472414553384717024285067180503485992494404524194463701456516120704380286316911934307932564416051440613726879204618414884432470839867400595809731064276014830588555262519493895362068002078378994015412492032528739320776652189649135699396154972247417732410235522460029641909034749909716498197696677965385625826431834023675803933386986955468982039173991313945342121236016627650843925728283546255138876055213070138853139274853158786555385772158143147658171720691968213540933693224183363320415993075458618757957338990731334172115585309371030720228310510357567237553440658296905177948026979736358797541867161237195289768513113708674792710507986257753758337809442988183876013158367340208970958649903328564743024139266327154588250593876760839607854366834867999830556613218055391245403326189454699603522668618709936743575242123774826440865924773299138532820905930562371124708013562747682310517567734441623335709615824821441696243130815711613750143232780418135065976888717628403443345705113643695959841767445596760137632469206650593706877514322693756057898722805608930235438998070987780477403132391647442336086540956405009671589619014026858512326186613395967669439914510504476357850610839709691717955518001275062210287795777646187793031493577311382095085658998456644807937489475902850345555370085493127863227453952678924308519236196251653194168155702167319934806373928150552632949869349862061488659945699841013471627902775269339162245698696674560068005388972745849490832682391970242187199481644829883541426049632507379940791730621179130365641851915054613642575798187310447400628664607683724593172383092762584703524111869410834128124706445350654737608164545169925562345439326882379859782961127850475293749328116387280744790314234664613534783283222011377156279654931597716554839059186032659309711857482876743582190801410735112037305009675302685387063991696431918306654644044907019124040370310566081440931291850128304972632087862075103281379802829054858759345412742215630063430022173698665318827897984843822722486919336910779972819986000307142204009796748430734090049743072024099571751177365188982465582943876826759104125286929121579428831027333725302800296490786907300628287527820464420876240984167720873400807603480231372191041146003459032505446936297051120021291653813859807585387061456332019935986014382542256998821186859132840479392026961810859215205389364161903014271016401003706050750753757778330317648344369474458642903816913492725491280066231271554908086256579313139650453268066206439286978754547619491756695882060027845526906650188067568735116963195685239787186969804955238754150622568456471446481687684543591812191952973213706497362993557114011709526795553675118017290666448425088923614762711309761632625975999036802395221230005267151660243537119560651263200412747266856235977092003379817299264046276087766094750056933750184745665543820538496715094677009488247141456267843488108991178636413332037772158596505383217251265215327651649641308645330538151522848858576624129865837579042336426489748481289778877094359939812245395996240866871183761128917007402952954881798819817625875675144873145254611226081725950960939502356708441100822010444541781647322917153880522149485565479335478966537220514384894420557567567638790547659669777344116602960727629439349655032501565980474000240927531476635244549212847379626799264149321507205764158468739619716574750571381002282624637939850413687092497879954409364006730257835659475668411299306013313446183078380268192709932359160926523035006539194424384362140006454473615559729853221307430869832529958425705828825815668061470731675701226630497186002161940347031502859842480520237947892201581850658508523210132459364981578313541552777864896443874041607699585030791532433237574683657286763635546572037259961338938660236618411282722350610109235377209272564121469898024981615248945663170415006141568110285722774856228317565680852837027396319340561271219679847209138781597896801051965511869865259556744981366001808805531056707473291486530229978745875242225257419673057975925919633800617744960302587075301448352371831888197044956078252080345271414296957971502551832743982751441834799256787018495330604206428452021533422192755910462498379650753237134186004465571714749956209163657226423051751192689185282806856591463855253201349573093333493312714568045051853300747286264432760275805970607651550246387495735053330930738312887229862957951325054657414175106412056078166238583452593936943548103725951085794500213872789954015088849887681311644311033882500092185613655930496261520731410520846798786889323276765118087561334537692158436805941894740485615889956525781634336165033640410166072540532016783320174392343767776094461026684945193894552521932058298840307726804908384958393002430935121928432376729223619024887955889967031791230501300007858305784664857485738754313071137218883886875454468408232435891577473020520360581077493790304869302953073776331669602285445856464654694491458542707550377804499341267783518668549319838455839375492878617175078998726228194190956279539349223986092924416902599991586654697728261716969486711361481820974099107807499223501972375696045891674122953615843650588983049552043974984082818887281831652109685606444756398029029228534959981978461943534530011458729252458419617139364327626645836029660823682435778344124083206414169375506722375990326484702233137101874541823350379564429386150677150311933733488636163083177091725608030249704578473899121125230277656474673906283595519750612216406811559002905323903108291762351765858209478010638663703212792591163509508413610018893222262209559683507006882175925914344441445532628476114690728836096868394915896414041776350948699568343676814379534856294001241785619626050604096202492211654115956969754947616734818271438530284086237319412084995903807447514317024362704554500095506792656593874382451509740576819142191942249376956884124552989742866208669357967689975069450281302974557863671238096655257495337961925647249450267543319386209249471360667049677960403428042634833809650879103264792433560024692308084215756456769991239717229628379949577182327530136525746177303124139164890078006099614392751607476682471909815360799228681226656012770674606010778793498360173637770569077408140506771678484343004599783752104820417930070750140172407641920984171265107557969671075856556116428861475857960978252446197327977086813438034791752444065913544646530043164708253633772233855723961584545223772412902191366803599815796671401276739149495938985033912308053549970166651170610054903354186510899993379115523465888358869036864927767638467422271798136830546676907846004120916871660233852336948270190258728462805706854693897696657133273950064791964095385450185069778850594711588622221118902763311781454886399226596198453820757998305013540848040594134892736136174674827508740884195110574443138678028733087676977443243606557702938449712684416768280076414588611295813350002599943359652262928736294425892310999367895234293471518115429085628089579481882081137427789143404409955285222542322829543284847815195727233111714269668613593510170913771686464609780697143097298907921806345732295850201575651004120097319480942916315198389971489082127516347274369389157988870872777566393946028568118594708753141684066428506456583357189932727667697686675416331151432184375080944481572051091525633902067145579369528682913811389181283004256991531473957413437809429647009580306110136947982759572042027036074800749003433521968791321128248680426285118790432515881211885055672558819229958339970862457359638348612855330406059408522235022785376848003014120891921366491147463811880721263802081721306505102426915901631868088610244337917627135316298058731331617380557578725783634142627009697506056627140054338323039082761725969584687661630249132710175610717353471228133531769396444911607848980657342718952000545184037080087214003297388179990623708205944746822752084696942081116237874189570523217817821556594505126991093877578124715798374059240285097828545315553640181300258483290664548029743507120379800614186811141878579985578613053212353048110069339787645294482392768595785906881183741615760141350823982743008965141653919640744805130512319182453325003760252382114789207612113054781662894281310298316965530932880348836218483223315747124662198149842609903115547811270991668062625576220257040401875406187347950436101014157443729395930767754766253012671039608974448992509741379059793021331363277992077523244488584032508507164430995395898286020050828604088261076975031259645538390292095491633910312688141820431822702819565162034701184959142916247465990011648725082346122376403384595313671315345986124349655802426447466806246285209802419710215280478507701752647114431624013143576045917194497794705686498035657959667641086489363172581274095195795338930398767320440898960961547752784427114984212870223539259564712765299873354099339304442201410021586780561933747908107682374185318142895396825805746213934951578129966845059990761607500061147269150961148775941438719706240608062546512023742631025994176280751526290520766182968938779045848013292201240159026238780677847559717188854706732081399881868463610327124887354373761458919004749546799006937348680486793776994969210768754045756166705678851689159502448852056750841706328855368089871418049793410387239954535445094999548069292796606370620502608161882299661562958073963968898149748864037922135164030772848616727568858743426454324399693677193866230114533927021081151936738940526757108524832109007147474533493030982185814846318120062053445302984949038345094844874015558714284312277997841653902826809050357579844773536408193370369714712082973801319329729496201883853022219720234331762411674549779040698579448540342678866787237102580959998313875449073768501830216549389164259051928039947503050936631458471617859153942402551995102808467300401539570156511412707560670635944458351276619236286045249889426755452874814756949671167915582691756435594159354277267181788580678313345620550315927728004267299342532994443823670753204327327915951195628386992801075530280453653062822003170642903667724558725463328684645345817630678333240356565979666039114809585822528561301190651000545622286897880660755267582500597249115311124877659407300389235513709445007845007117008286670793601934043282688118971950224131438762566098453562129307006829799109716129575995206696479293861630310145317322223027357445496421822535256101714337158609554750747502049048945969618749961088858356345385299281736569147099180682557724666960391670954626251591411367668278171811355005079399158083415605320728608614026074453713069690629689141025879455990071582070058817965023782662678997318638334875160931811488186243641002368333433246767878630682396266795864826223852002082530139695247866575543374494741361006815587468774836361179531481804816438519820205754125200224659823843745996818032864515670940542528109476488544036001773751614675591446978362250599934386758932977255204062041965013152093762425166674024949244237045028121483019021886365459391609662018973856532785089028994837441314718110006008852435281587504192571051970827486160903116654118237971088499293766081305711468531904073178336867700587136820017243293082081890548686113524508409548218019108133099080709469597346073627973361405415874748408705690539922653665775229111708020933042263576516123969755446153989474283998557587031889009404595787957802414548036747375170088123558985622124120896992802536631073564019567712315999719577669063870347940324812883227517464298963093101317440693750629448879893049299934711422579897951997438849604724777029171617963677392386483504640111752663961474051630123500488540238066194695719226086941597232086247998179740480754938937469030280271968588033481569768082169224808735695412103205266094220785313342151533400092681470427564306822528020433852167384378994161647043185100623313073884028645158014384357709369157127298631426554074752892773918904376665302909000072459030177700662607632962152889922653689877344215917129892571352518700223425424039914482532221154311316200077865126025300466561164453865371738753858855663454966938599783208094288868049728721159256341480166125009826598769400069373698400049591554295325421194471988697082276589890141731040127693986738354792937300554301766944924141342069598875367342265344468191657659663304993449070167012575469509768575593916177425517298630078208219599578725473852056115475677280534086356898122697374440773029251395357236840084280386620301930803584142486819587967605151826854932429200520738046616396718814804830424479284691944250475230834962129942524880773226183618108248947543555500849154662188959969536134476470350334908285575155213799490293090638532673620564445544317488588776892583462789048743531815477119241041399408993365097386258642428200959956666253655701594569788795296437030916009474508328448506428221086509911749982715058933925771326568694837652334070286464445489017217988456810463223699898786393531662711347124868177294330225111411783776005321838386265489813793603358941399271875419927085057296484642255258334853065925055887677475369376329662385426385071350520613797153759386883521252204100482587856999981662309069127480938186733068748035248098111148249498129133655215461469830323037327847007648433117820236300662042301851631759733060249580604454510764784511540737118164387683548623893609340109851368651368040211947022082685286529251417318402655769921515684158992457657485881352892508493255411610087779838874820504703572293371596371582741061277287671834384307594441730279446602804927603759550083959464098897008844249266358338633817613292090188090744989511636404098837651793038526907112771896749419926488281696626182378903735443198004366214373912349705585655650596592555954577099928590449115607663742211288241914006577493589279100694210511119068547557033270206819424840267886390534162956989131052721606970286116764854923681653267410804324620537135128561185506703966453874739346431657398760357013313062558274022126907549741228801055122524800009019561347658265247429043190043467447570463572089508332719652001788588871503309811154326059324300367415741478807019755002275857670108302488528329640751344912811416265098707155915760784544133414712504160992867313772804792618675485754773737945899890688047807036099980952591761297540283388526244622524269577802641875345007010806488236456680696132633361179025633727447863033457712667455223815774814507077635855230994660949305904026902848931424567661400104944616092060098782479687326216151395625465024318012145967189935184222440778478607160285561034767608864113657120650289874989690302964344967547548830530191050189132976054781364111293710929200619858960659116096669341978620501543304021502859230693518864117541055816328272685022927116364205123386636974926803497826186631015863772019428967353317755381518464594974740138742793109942830639869360516808527535139475682147400970934527989495391572445616824955916054345371080229858748828643523036680151671454403389492892448794525557273919996482320039799139524013505799452157311995232340364039355440715279148186564607423797286520832311499777371646055800402035294819747939334263619034336704354173125661589814348128480381445478484054796963079758792794948530991376385232242805063119895234298008149712846143294453293980112671866246008197761959393488276461394912651376671469714553186563971756304580311420303945815048350622887561990374570973470323904035775202337495543592546227557415813125421106532623127249740885718272489123435049472044063067568435412141533623515814879426419495451075144260096878173664593655847683010755239766078443816494640640684194671532065751929109844326214660199608567339367067363643508702422125977008175843770467510799553865750438315069971126675398633540930254489059268989718310436096772543990855707215294318614486503146571232211557814426025300890551596715533603921161826298730711712341936308013545039159224692073551590726137739446994086894573233442145375720435398311494767790094547968987445569009683290814190290926315401086663502736133031746858702001625603703467756115983803358522211847500682584295983204340795166243263169022031351856350960655014563386375865371972732339624356316329356915478517962939522622158109014760115406513122984216946667670614824505833793536390435783994878261590393857032247443695890568269046247177536846393653048842494054933895797909445380384608971474829919186301906572470355449041270664672587807118422063606435437005105446021769151824336451738779563084015623705822283795672252995447956735503356975857852194466453862933859053174987287697244917845547912573412258108174515925571469290328001290858657744398058408632639765676021841438201291476012001985866597360166286672101998499974263480903085972435670327938298453694846461451191761357733439419366788509624910048001377423774919130667545014405873852383670966989684806915706918075225381943452969863215441227166995517610453674938501964697670951471583945625430357460485071178644385439285187567611553729500979315307814074405261294954329135711464976299922710932266246985444870307200805875863892990591180989293944995473744372160849600125684528452950662603168290267543729125880680153601862553477845569810089077976073577202634546039855662939985654670921689427996191607121899547306632724928637965877922141737874764560736971937033445035795953508517242399297221534407741492828608422995467538557906341736414971195146393687185641530131213530630220656264221131584802347923598856135775335601390451916736117544847267350117595583937068524112235135032607136060581517171880193463080904759604714085285476711372097999437839345448407715946323608186518397806441514854656279641969382795391885263768745329680983132175685074105886853181873415120390898184938719380354268964898954752134212421553377787142758796805080540493878442350477514062412694873338759035658802800022472531128818897869679363906920391208225304126373311515004212556993697531741271793197334026959616938651111150621040859584650494711700257662285823094481172436443824401740839666772490697123346862784116290506883413715075580913323287726164049509520731479874572829391468249737429284964625848945706378751473738593161034507775117168483728267583111744804347200215960536553514917949078402578076557045577585553248941257251285967052552980265176657582793142640370008507492885392490377662663605783115813101502378928393659528858989861763829114354371853415277316353368822222851475604855517212430933640517149275987780896489943366398247289730019556447972273899103457313651654855381913544387740710077538594637555900260706738708763874166200501527981343334923643272206656376901714201920132170794728838667324951955207729314209051938622393289212073235276634967529328335161623075735392028024965115038664963254199328286278477162716493170794813844368836268225728515905387241408071377531363502328032400304831813571073927174831158544560161620976993235621115527783267419755641931916299682287434000249535004445356776165789343229419576404775165505296197551520564022787651854361835058006679335537902667810446818609183007470277308237628858214162297427420179284210132222260552945044816346923402427470920501538266927431776471380682111010319840162851808422968929430775793251161421038087607477935747822154409941764107522466157930266139691404345653265347044737954742240216966513621609911088509056621845695989067097364992216322430446796556892494621476917675286661613273597819289439958113947071681778910900283251579556701579126893407720757704684244498563271247299105159313804672831865290389129815406364327472580259236626459171401937601877645960338517264682404839332704517907338070787054130070949991929943150914077604213992960734795976933364628158670195877383464720221942117463964241164311127094823892358144723450483258697402320339102885876931097905232563620759898205703867666110785654256228430377268201315161222044989984254570125428429520062403053353462807796517032299653848397227004612807932863863778387389372393588237375147386886072701187229912423832040653556186724068775101902512814177450504768578553749694032298026260353452532312613689924325257654695363734015462637311351108262175745477800212313130954477141975709253979067686842683353745567887281593975292122786948043841122679018737626704491642672502843329600438240787646668363817552597700307808109907029044225125262026522677882311085770377930686556370654445685173044305890779658294057322578234127965530440338508182055854901662000254228648315660464205333599940776656580858959874234625250154526328618476526378244990365499167340524767963211306998345008539185837567003634134912468594141684902280780376908350795484356694104511845698371351727237491266948986014065391856240803834196559138263727021201856493014159988891040592704509455965415916515684632350382353095308120013768471698397857840004818536116128935401445796179543536609118932230127265046612545787870955550162034917134005141272666231578842736809213740503585557800203032314137885786446222076905110007461364093911370029584440469467063972916748959419430156724468274463847010747203788448930727555319974081537933089091738678167539360942557612803534991950857175516121037354282575840658790608795204145219753891821343324902396179271126606814728556276494741076203474128498184442951072254784443153552935164935947580232584486377913736003866919863238241991105860988984355430788618273454102712604607553177438321745485700769586728345119856974519148951699234744672454045885945351517271948307390818864680957343072291755427439591174305519568457115904944191072575738529880956574932646414985467908809314174431744696579417795375687567981374433317428344050386515717393604153572781569498097086409680039164707858629327323954391010131553081784765566936687545052589640461383973928315885712987904436149248360562448445792416209694007271465304060660895639516460287013597271651025988415720475861898269685517281646612069626954410216787400134074965119211212425214236645369312655751742753395348144430981454367150983747608151071080673924345190981321777023496164954073638690980137590231337511729883653579546509527942701516401724920473964261571070582860942119399451140253615582747229820291381084276841113992445055376619113992369277831727016181313908988076099650287451022819454381916638749004040670326803620699552528441637227760269212040653503775863710386760980999726392651424514857206804539549500169918666154308779602270721460139579827910134249255005197532038942648445341207246937875025452583515722454090650226370835242048991444599741973651828681513726427213764875418886002115036346036521603389886510456662819514237959592734774568639955521182585096490965347455924063535734375067809450957035922704587476075241026426135935131420009950574555409518405211531349477828402057135553361927832444420349194252443747856970336389289106972870369183409097298778917256712007651955296059254636651822848765616355197616152730226628277429479148322261764146245355873741134365343785754308770726417867172415311946290514529102839367973262393432045807105857318586886808726511891391783007714813083617470935876044256222907776801736173861839115916344218463382663764464325988703708770855825798550919420280430880080559505561046771191118894409285331217243762390880379224603753391094204107247396321058134402927951854721822581733666089893226139552239263041661262896408589707208988063200319368142660117081232215602597423985713255597853783387103143087036018422361962468736220069263384175140591001938773476064924356897773292024795214641770724084253738753012138229138655858306361038181428946106470647397470967593724606849488933280043083238159713501213280197953621421445136673671248753027147471330411466262205322739122191437848162024273923204911868830436043601745434256194319805715543418565718723056861868923902979660523994381738132951562478739603672064289125659090672713339010085052036425203288892635357131508207223608894373746171650811051987530561807864536956389258323687162732111668977186517841306980364144867933680517247961113857287396063875178863538807844930355120128246347824851798949624455417887563044993933316492961058726771052510392715166619307937176591181240904986185119977664875546184338775489640010327844376917353780471883309735145859538504846638509303116331132023500619446834519312290290509981142788184403333477251810748947228645474270888909903407814127326944307695534097178970295970246268054969350201996025378888278068055716851441135606838894120575388772864523585513331246642865095437568158001661015264031231211787738719259260418957077826286284314820443092073158033243253170707469488044149664106851401256537191195170347112640331236525558896737300534253437839399610041167273341048781167785067455514453858638458844926909874018426062365945788085681645136005693188720463040320067478969221420850895077917755454222983136057670787888705477106195126670871066846182690524732327498441644066321978869066021978094224342857197760220198532933399207210810315241138059427790608272291806987438432030983243507143314767079399076918692163958628463154757121509855145554975860919477630755988525244685092774986003148374142104142371411666925819480552834367271910246728434640647693447599093913625547673078464262860723109299677383202728087842807560353266554271629545494402774199985074978500924264093433028941244814043558281733898544494744195986207703145326382964102461592395421435799456166141474582073082694823684311349392487472480067792469567376578391361401746287522852023318083062958421644222071052883257792594500063658620376419430527814408452319524833072168333815167340446357510999863327142461070676699821467182979966554784781202546466289675077729066962327511064019523059691598447390734447364490701263183565425961720813299519278949860299304154667945935207651751722964332538078135425976653065134735867462911842574899252024184209717590510660293194675508530457850049378571169874064451844591387739789507833379404171427930283991681933493638238933662458199226413478828055631671010887509221340771588690036645826523344253474813491427934836632562021866154237407832534282277081126422165891912210626387579605103590523928570652469062449702049576239951214705276823999503778099800728456170270847084599407741081157201727391048427896310737935967773230381898592053815350424184387019384726437499315342520577683752116765990281930576895656703943723513926335735233686835617579014105248980515683776655148618913947888117072153446863854233433074531177003963317444093959890943197352521397781483809092860375321883044182019118587211050087667240259549208131284432911577909077399029599557852397220230946858019023966769584910907042609381182494710854562349915370514552576043840412947375578203409549452322992116300249670138568651652751499111172982941607757244220806276236889861771075021587912573282088661364321079249759597975929466641088702673100488322515931310150150989758614935530109649259779359323579222583979256959306321736376674357475929348171408104304987544979293589975683312068823733000612693220520901417201402727808108777490751350309715861576119038241147715852292358527247747111753511369417594467919915573113719316663439064437505873302416782411734459490168111681249313068309359648589394446518315484545755926877337989574840523073039917028624433164786735419214824485919616183194746183658591228154157013589227631766731347246187796185983347050368576262409595967101695113551466826281735384901817247232852660434087751694095845382192669504950784096691985759122454290868958508794268990090030559092754984749308300327287573383748366830129403576112713991479624652434405659894214113670224957921605817190764783789134232618380886736208029790115339397105773202051483621038788335171093267853940730532583117927307532179222607489864054740289679093203956785099975695437318332259132081380847613608845696480836982318342536976456784930762860683966854855225948820591731634387344163465074772770207050956136299859997650629401586870040828692214612628284148749409998278473658747724925200220516780290236520366365452775198802289623833880798290681683066617439276423939946073152234127499286634252515665548742107560357994363297189343847256554045664412081787403775136287044815200382021295521208437456663358469559323095717771529737335303532978993127217309000866573353347493225182048510312823286335523736318361349955090661640987960360449459445017018073651927539539084324436238007163624587627874002660594497298559121510839715419633068685574368656019461291722327704333235099391059109383645767453705908483157232205547641344016203840940728792926226484065216352330073922091074647528204565554025420675500403708449791796951543786908495896719985416891142952304930239809567040759557744222317517027190587822906399091666378618567620045861781251331829363198007143878823359874396363811998291832101364132171351750456553119404581313546843010313212816879536858247982045093731854436530600370339828362377865681746325641641216977048947636887126392383946172809228002961109264907241187323952735486754084294212190168145833580441848053338975685188396226083197573942644439721847346104107905070572637284845553487141867149074972185916534210016030524683603120799886773729647878743360485430539446254383439947377260625818274715215661920391173245002134716532709612647076705972863163928100982660634292198963293652273848837930746203026464136602465071042428516852341832829910805606021716432073727577551921519578056195122061727201288084788301362947605446644759918748764826009251616870482775192259340785408149511380290024919442705407126724769611515418930022863476443393963190487136825457611341823190070521711868837695292349980884417149489370431498932324494076777130805324633809228061693258624148666449154837791554382220892159469450706338562807339652437028525392069160358168931106770640436099200480994086723773877185686699124455000191488983060563863860372942632761159471208345043584987097711896500581728732419843226927562153545591057290987161617118558446509344628524324002491484382825942076191142447214289579068433427546307306742420891403874888104894074166547917917869727352360809400900025881797946950615304246860987108485939950655831994162585212618120667157868717739610244868281422276286182262698543239442339505579684588258347075927550970854330771197360143683860875701826540125326113327402779438624180822766551228253023657336788402129133317487892481585699116264662078612518660875235212458788870968152506938359073733340938886455757261106810478420177684483995310643582576745086949170401356596979782391123561009251403330258858425701132065485036852435078713372595943634681000756254203362301854700922886459367702684832909571975488811240552717124757366034878505733704973953811672927050498161002857430483026163506259773785166421318304737134145094992283933030995532263999347047823732773339927321112796220908170689491538679102542324511077834629989477235156303013970374182186300030885612877808177980356648178946642099832761215538620804488411874901261116404097267684490037557908560940988888456134421407606559476148493967853989639549998095937055457303583839812889492382944903556455219187760373549820733293496260454213909228133355639747507683916971950709733616694793121514003240170524145768904365336293004682356908519908163849856163083938605891173609245597251459257287085043966936401027232837309845438636903558796447056272153152437601378429238663244885611188157243468423754773176960704545857548400590630984312486602280153359335243496810669228278679169964777517078694990883471169390754078084238653719361460087828124847805492486562985027752628224596134646081740880605799142572496154270826480062047120908872163550453293007327362596081317949978727551827269364249353598507732100836293153212383326057517383046680527392726928294196787112866659788109449084628086449528272702269802306754309867350375466490422592278997378592921073226372331152109997880123731090049705045130881647356660158999512033458167741902154546516945351022855856439346580044346601374092938031524559513780399962773543629804770955967945672219087286637276176885569330869874040408838016427319431083579523939318806909643748191689967179135153557709600914377689626952633846677329273641395800546276372689981301242152978399914231996604064086571455248780791696354463012048892243479559374970760776720689818322405674460861017245607482818724676788493746334934287833161509220610232172172497129570202855243644892570279958240415978399181103136654820210856279481987372480959981839434130526477204322294954573712821421591541840378501529209788448552141243109319333503884709601217361348477778624777375954613375508976394868390097208820040528304897606024219619968697158701404924126007328802101958269268606168093584947097495045574230506218922077491673280349957700789492239125782315169986962132834713485010022766889724596215474873080517347107786103817708502820404753555510977117016474074715540549068039792503169738653302431402019865675923385575677138802635446798133697091984599319181240174978409179535241493037755900689517945944854882175525452466621830252305394560774948880625653705228295980533658744682626850711856582315570839638258191727362616825116773131976790311280236964344999517510201740769171235155720279333539942905269842471195965628520571075801208312797399790735850992816331236052503454558777216662581792065746522922565037600896870905626589028133807880792264464515820681986623336255569315698290830370501837780418569648665144539457499463031126170698760345872808662042358482507276564512384041810534665650192432846991001344975989858783621989162955656513140301992799130857533646817472002419896638613347294760377712838120921258121506188673664172745795180334564679116009157846915193956018116104781504311779533514663558599408341286402459998532423042614993370102208398244125165151192229253505010882404017526939425464317993995896320078145140563707529677189244415821515756783454829784252527859284924897583255169034599156011751223840336248819923733468877926717286740745630642964346299019856384637519767156795173658134301678073026789697594814382631495834398166968192398222744929131602047552045411377613827861078054219453884755419321717612868548411916196085521917838631101930749931278777739140631033613199966608328024483170974168161366408875863238339912087352237497564484479843729535894508844029547420478856199972202247118649151813952670446040796265011583399958274743389684778108588838757289694220129989987264769829551171637584397615177094325357444080450308037588025758283510318493368402594403312123332470350750304879783258719587020939399583506671190585953696064820551775949555907562089321353373764227641311830333741140103510673104551294887599857958231647483652548230667630225008913817963675377955215843821415937537507547268103693256196624468356518186189236298957866047179912708419303221329097138187031090273599966962621225331508486749243789185608451692875597924254493673760092051364872007562655070656380455640350724787168828921975152160028571004716013945089693591981888835923567390744161005762608008919468520771276612461697755719118971881198790648346089178181963511729426906961890926427149275024853232580592887957629008135873913750642257081328888194775442191629486396851230047092781449803586044071524293401430218228212651124841321143533957206411367251428575004582365202370533266715448925875409099191848988536263595074566018870945907678600772959560862634862804345493367380280649135857704781328510713176453738853671495469345443142722236670610410433532201005789424304206195737212881807069754571453681409320109858892399321464695246288865919111281569560546922960795092024745470639270176394119773841313038115278752208632760723598503608199807121742023994051762518488513418225645934705750503069056476585684679990085933911269540370417599221729287662226068752062672534626628860665230457607678805670996921325465405716199280124713679012687010694979830244566749194200427731768175817961025541548671356945989807541774752752110280974154737206727346508016704949030421228424983879116401357878257673744747182298185484638694271341735150130884908246506179684281793690309572593089497238581750024125908480254395575046667466077429739866796443125162529238156932274023681712388550867252861415065265683022727270251845546959873479261906805729471570236739571071961567059764323261329057415883812096569784295848613768062626988008928492204762520427711891038638572765682932644172641544858587853552403321129044954957569890096155115324336741261724783638800200264058656226758699930816597277236279235200279885416160279750936465705555014915586425649761850405945791199521129570235371428579531622595665286292578382534209219631753537406155457720728787919921400301469864658933184400029167763488399512125895164941856940951516919440150428896532617038662925373273278885199921456643089623205406897055378297848368107536656778146414308009421941647693660913630819885619147154436641267883934913577268321157399204202313045309049035052625107061175540454411000109333216849432001269303538525916499752529528349597454876563217373148218535178972939268047223924669194176157920347320932251936949282815108211190511404124230463240332683553140943414003766465843966753065772548867435953884944864396750240467590243015286722536377947397855519610370482947501948932691024711168092425926878459564570825689361476860630269312038133617086440191208261225911462346580521063488426274548523450109308214314591535697560445904523968704688679516832887512124966105390936331455283938787181098706995125567144386283522081438087167185286903174235058446628709427444567883897230150261852983176230039029678540426220374877924708878999401390995426269453484264442797744960209902016367151392928190769270155181278401009670683815096652214214942890006826118895436983232719026896085135260914993412461801756295459891142088994301830105635982765902044068404626969253184829436716742314184576677382757429447226331585603273866596878361654531844470531180063348734776179758321223236388729878612833511011489339392637493734446179125512105869155837981344168675217129869029718205009092069866088932827221453321416274019304860107468053370236208412719955254453693658812876425669015632014307597442509678611932904385441949330199903804489018464170161280119139214346735076493791724465217723631570405560158232534686817604346150752998252556983521395564680918245739712276346591146702684421235373906087446803029782440051644601441777275398438766823747556095011049329146072459738185434211358427792868706854517921490766374538436008470084760732152893517795793535121777778717763137924800551413406426318278495330613593536525197009444564677334990049805342726690600087705769385870132438258704254698272478156797442975682437303982082378663524414645326006792522332672396577320287355666597036620836488371819088684769827492992099307983185551863305243271900791115910082155873287217625457399995735708329230472834033800591745336858470169849854346682676941575521559101304819407488594093471207323595146668176441252521004256356450715394237447002576839895357325809441878304695535492014704314640636966507527530506625850121913769865161822207572300353042420769403636630898465324907187306458946903217522588141606053495008406921020393521324644242372815591578961859913078114887762268048235705324629624325848913832789499226867703023574685121364211847320010386868020747454339008473167700805926867222684928682265496595391891709716355908755290724541106887347401402793156407508114234809529136306967462203274367350082289243506255374957195554281921784697171470732159250121383161580928756533064857703443304623644902784169452269554425695289401671908105097534029586673056527215052604943015352582334517951480525445595386023955445844154882722057627953933398282065283142744724622119405609500861735226392312184540014281647935205951707361006531166444652349673144767858221355947679796892215945526969163017045124627636282016305446228053764442745897887496114297827939649805521816394051744322905929278021472836912068312976426683275490897802601870903519854740696765942206039913394964522721032400028462377116328445958679069063225680122389160903274597076425742624046485405835695428069500338747173105522041991104105411420774543612652611639003469151300566294434628359112378578182821792871514673553241840256415805858822879539332054014421776931947186545282490417902770168200320575199031710554028149301606227284859356534285385995918025829733010749337647083802100458203021902136756167634219035809109781939356098925336326846692881389855401694546980289324683868853365564260623454156823908493536445165833023099614705498434521886423751032572742072652207473719631261769161616180559448637102961127830277863335976744201451839667329097263418689976034076567971000559265260766688697946096723177865912410664864354788456705902429636624843207211885092517821091651001818692396643348766214816552309766691819392575979324750552466106258564168068306517047079543736626280106188488580118506727700583541488005925211318505813618914524923780345882535870672030894905610858502351964680203199140268417283403577141279268810623807328014628657448949595609836181013589769119815239901806118154336639952709885101946049618571596308828276628043624496544439656849053218918460062697482206748255706842062822797252834238947688879608904929316953494649382297324514953387139191937346625310442906904414112155505568884728259236276937128726530546555394223914627358992905045995732477394521562224142680265904393623373586667219910707521563970328993569392611187225592152783726012987470178561483676049833568178919320637549238820688148731194918694138620679705360753348790266854069263344781005583350220087902287805118102529692741716500604167898288653923858692111965482722035263274394535105711248348087251195719228820373238641771660533182243729595432704598607981882932847092545234387701767506412537119835482636233091348533039831237627761099683169037520210958152280423682805354130462670839559277246013052187136138277483223483448509730233324585485608455948915155563893151519624135131435560091102534827585314049342555013034337940902470496502922099818109881441396827960454382635462484384271057839812612059587552315998090801281706541321580830748577626227265165591603638513895664140901194094266005126070878965709142164357786998816479647290440358871971660634028365945341065720142234904937631153911017499159871450097155827636857295227427449755152881973426647382403591479441811193404535174246653019603890341900666770681445654918600409979846742842626700951916027317140653654711656939371697059316216498831715764329909766870814458886455719593267425421544739384049018862232386064788176056612712364923980391794282615239390878288122131655868599977740467742627022907949616416598063493463743328887994944176869092830520912316752702875555471110760103982529735066670166524721079905077531324742772291751323172289862258156400552060751316487495480246886703877457991680065961729639760270858039853896558326868718321617285017233080260531461670274073300498525904865915128964015514185197620761053475620924091009174421862755584243469270828579235428195344505011984923620940570441017255904090314244350760133131676068125166140777342166081875936211384071700846771689118905693784936600533926748158482984721812411192614476202940174248790397462950095610467776764425634867359025829856181475422052534891678146654827380978722076713429704200839347971296447683060190565798834402296101900001021317939634316721670788434040979012152923544272895026911209966806439536781688481806260986632350946095509192379103468780775526050964298365384590933181208526822815500827102168203346119066690327600400173264023610607720988486333116530645560242935291366569200977195803850579138853712921467178945055092911463496912808829988178756426717391906326452909553893765236274702145708639900734955031976323349037569155537199606593982103188350620357593303137866490048439722210669881361737418407561882905791254496327913316724362839184342388713673031486872950432644235756149572742781498514243895586338567183805725091497886828735117106920166716614002361598329096857219668079760421197096840862927195854417922898135415855737134015330945785553493843872708608566531711552089722843050568430213642696148316110650004213554875788128507231394972950088805977906754978348817943284732542856569723009328726347482025452247176682413380889161973971651845642109084876275108795381879328164030856396449004462483803237334630737568877477826076874773698257729311359226033360762048883129366522653685340383808590131032815860083718767532501491796368330789599971300737856169853523424904818778450084832877880995579239588233012804110874795471297554568319108195032731620924748173759842046174487407806501730719203063325617236404619671922995099399893952846174448895514635941332074474042890490783907366999213859023689980735635892782320389377335298253418333847759134094971569268458523975137608744167581511637485184819352740644577032096890591904337544638981690720640244909132509099100124002285223519897887613016216767405928211956724848990079788387708104657311037671251456067570485355855064719608634406019164291147079878953483369494093170522691038108411427098418328761563831083470678962564289075027677224501281596435564453184022844959637892914348618962555372141838305433056611457983742828584121184527259890598852772397153959946344131986582458045070974192931793250543154303623945669991846016246427579158591131842798109183454192164148257332685096949859775060300348158835824883278616364743719413609107499878307838236883381844915554435677706986280545622676056193808639518590608009446247223228384581137842827118355041601810977558505892400816717886584054080026548092691119142162478563951989698076696958131147822681814877479112182371236162041093207887461133991419396285142929211876187891809880627054585400464990265645490727752188740787432238811978204272447468115220481690500026671161879417117884498445728252052775009644447474915328157981411607167661747572947248411527385961121050363566184671060157881272287019083613048268847358812511130248827320928850663100294381915145984592522140711659225116091610402486786381570758061774718484491978885040271788081454749015867824321735915233965749269515851940146069942674427351128993679823883603143412500102373964516771230079586227933829970948210164823371711353891899436127051179305395393255931157276521936715697750481786202017819144457582306199412484053589089936709810258095895988037365262639291763761524478775503414999962016943257901378856663496270512717638960474150355031193371305010675419912415712956153894287826486409784526689222075578718831407921430269111948526625374084911984108001535206459687767072443453965143523781673916502247099795568053093719996798471599663736558990719257628424942440416391946456434437165896360333760350568128320318237538145033192763332852580124066032689792682883068085218835764573952414785987246582691289271139039711365597502782142155687527376872392973737024036795035340214411500769903741963607713993923262906893379410859291224640429393651107796883529274647312764010647188657300307377702763480554020359464091907958140125758560696285252526822937990329073738197256553840415595125791363555330711656316816410013001626476219497637466292962051788525721414012227421160509621872695010758860549780043023520844374287649980450021268213320363734665005994061544801152636413261859288590803817311735441978741965068255094376181498531105967877837571566621974578862017476860585054488197486036778145369239694482387527056554568154053433339467079901497144714365073452866144422249137192176106410278838797250003202219282653871308823341336770774869836874367948467638696024360372979027730255227800600590161664142356478725448754004307822603937949031500062555283109847008875370524306229382987117505591433971947089955557876961430134431225722708730691505037368301254086950380367561632592701055570998348701857718994560238137456785367249287648828852310761594868770687797325075292512317339910649508992496598808320267438630176516802857067494215075493496988507502965718059782291963242956815348149420976759676765886834383581288659618435562264304459204908103051632251497840527650163118433448430382753750392368367130686474107930252214305945913271822186111858197709088443597697880981287027212702100844746993860682889835296451648944428351793147276307185150602132557655302237667558413690631371669769452887728687907553274010710074743330068406173174375484929591836880626545837345882703201489675583079340576611397861773320718216270943901213568124617985358186890952274872999993061992143280966118107977678498109273731528261942184038834839012738027369288742059187623536801520479291631875614636333292099365535190963181813201598175954553414978012471495360491968182726164947321199102700628095250759404605276228260116327545268159037671369820954147493307331240399542282006376734947822763982164140193986613739851291844748390636016972659502068946539222145167381797376436763914727014545514047300077816274221492070391372844209914028671474287695180577608894398769322745916099277982715403065401904826661216346768155215960845967411931113206295533683202966263002808918013991441022076531258831446467845636344646178940651918689129485833890579693505814121728315885141672464822949797205769990155244512866918307443662617616217064558611193548390845012287570694747042597319834745242768754282838543093352963998800587790681913667327946288911913971826682630241569253079806684920518565003345648519619005889472520885425873924807963340044562695484228019235703667616925474545971062533723947417334535667783073293050265733919163370633072222222222762050847376207426056951186487198440431136522370610225203881168164418629762706325982843140232081591492055810280894547640178265122804872179206212184032132412739629238322297201846110291927938084587251890673152654071553376304631337803671106393770535795653715560612438421949078001328514810311122734300465166356814093117289743928709324396699192901189064195296695374054071147533939510386769334145265163258922069741474006000412251957234409739844509422239146883638130082985928531735072223323339162150118864397360965212452524645118290619628973941036823887574539691859399049224820800942728714687463611576797063762088018031008332409085684065462893101025527951961023291141718179261065032252449724229162640035497868134789745150288403761569962084387933554123162980035997906816586919214330294507104290529546981009090052437439507956929269209977704883103935367477814957736530288104807223768752721342007069277390932035803606011273614220758721080557866740419770403387519950956085948280015896645587471203166658253845159684304423546356167150949178934392473089426622218880458408945744283579579794079059569500126473495566002165444205091901475700092222076981065143625742848833110152675974040327206660599402392260994128511039427549980724548178798289222242812402010602239427170953465640697729330153287344831672398705396878355377318506288714447444567400571805024307376401664703088016592200204505460212430960502242458501466881380810268566083957458264486040923604376415630710714080706169639225676138655967051473348315327149428387860265406128739539470378524011413339922272536757769142493675400975800533622200105367812483889117339284358893250999767278669927503638632527517823248908768670868044706383733469956388729686586032110442727849026433696701227869058334551074538226436897848771616239235839016694579204523268756145382841025104604858237504068541318055894917450023350519171730439903976299654247340493205457634457034042105812375824031807858197111610087730202375535421601290815950699102501768547831805250726093231375785093125461659382973663305658364233859956048095779804462271015719937389514316436136173245060187756766792461015710160108618565951839627451651754651125100767872111192901374520758272259227320143199270289251859796978088724033157782772922515929651215325183100181243027610536947196169831268154104422307474465513410097614950834038001095539387793951619263978492919621750827757525866653718148905655174654415887777072153138441982369204968519393370315309838083084947309095682212096359378310455585648770388461584004013882655855043329819589170944260547346556050834485414778777192337162721164209104362110713552655345459916994401074451928862393061494630907696568639473750734478665319493424567338100652435146155963433586721935568413203024859509798299517072755649763680568853808113060763643421878852964961561098062393375247823484287378838562894845209750868402133376884305223237050002097255338786388727019929796082142181172911660076007372080039618226896995052712863101441946357177730660082857052100918492596703221396722527521695307692780918036961502138656089088785455241923629252263451105936009109206346556082439171370239055417073283356671253247742706944735205667243970864618262826972842667873522772632226192527310779194381317996902332445785076994122067716300670641241585322697023819296130985799470431099998141655192109135521312184059474117165206689820797469899485234378267917160411821765996336290958191898004925789192461579734342791097770199139285415235467178323053270950102873546045426798035157752321848827868723028323327478901825665367500916946374772324402965394464841139757715093234776588183995326410988427373464038113401172208182031872856009475741104890491693053958683282612206444405501288141506277648096490234289661152337471179588970986962618567168921101772796200579465709677106153997765115755367475471223737458541026189774449524228445887248338340351613001090013254248426634696831017686424187719180494003691975219327170544977253300969510875812745749284174363154972332463712003136268909976048574816546355393309189215885351927570285404805432010745597844331460924619862113926742113486573979082891255187450785495764919639461694112317532824326757209407116139224737923280604741742648536889426430039215992455451526091493509073500537351179163335932377425683643046235450678172598935071153787564344872021566621181684786484334780945828965663678915210325427243850547974503322193353581772951271222069736858016084311506538877074312492568038209509479391915273754898042200499369655931891508996754095233918620777346759621920176303463827371983034976340227503882638361573341263126128986770677208654696099578676252922442872713925418859225789805836937793915165603320181671238665102443793143744541789171519541142398496388989566947970841805860755456917869873501905292657449497300428456849027332686756995261989401737773195478815949844824333996714770811834052237214507306557320668606779854579015706719318413205965162591602910616481067275401088686832112870934846826433807414824644390643406050087356798392251844102075064064396956643744134778324697882400549532804747990164321026493646174344688331940056250105120190641693107628184004906093126131543038754094290241031974848664444176425745947855609089589811786914734465613085508373271893335136797040669392590348288211733074400797919706677231454416245428650182328721165968486397381554160060875919763735631392210088815849542941637077758748175791607127336928566256457272425613817939596037225960547407284371165544495389032987512534711653152497190675087890010589653636754516807569873078597104670120185624524664865431761064446248209817999556926344882878468193641228732310883202250653406316143464456665430637467741019604277240652848356436603451746971230387219104287253092704309332200547796042425399075137115230460730022168647484573379714104800971952517541249024013545733686323377102008980695648508174286057781504448848683552813801324759894257518358773507695937742365842278798955378212641282991577333731159648588875962466051499453476745598983975023010738999582634081397930592834920067955049851033015329023894514667180627388552085830198058675477327141889328292512599851313402713435711709367724801872958035621658997630240361071223104280601015218809740131654823057864131545607086099147397445413430933858527594646555567817921009939810877815397141475140295080860226801924143543712138399353656079060755326002208577120618698300111384110218953636892133367975090061395707833194581759552111425128511900222747005560881829980101244642906667363164807260035967357785387887322757700470488937993253572827776120768206850618421726721857053366937736686329067932620595456208635195249450050305228607129934382959030319995448878898919424324668059901761078192433035632627781025793902144101617974502209272625862648583585731842553761674405638353257689241603099710374773938387940591811505560251724177578534760579771607177790333966518999420068503562879747462376989268343964323740120037514935309169519949873935415643291286689380070524682132913488750633460209247531870834685942901666589132307191412216658743996910549130897741285102831315632523645558409880137307953319958075737921622537897236340329348422953622399984872533823917149422763895694262091639145463502725448428353631188171240479019607107763469706409931298310131165191107847714611349828411535191020923166950189239534901877465513104045177016824077508539593908051043524671142222463387713781055970604844189186210401062883387148924918979754176398082825298935829476300394492401376710822181467304986654312300351358813828013086286197590925659293320815077499206412384344826863377138805917361591113648987098582909952682451746537490902034304225891230096733156279849241027960804400286390504964645357224731373656927242817145352647681964717361574206901998133900311904678193004989857447856150512822611955051034657824906569237705587288199974208761816038658365596205668367977445048073786177148316456011176402015828286574384912201365164781539848192414649853368498067122182329820758544239554356790166289337416940981466157219945198184008531015618855032564468498832298536958855054719706667605288469486471437718342777815563881678061159788881208119337826153556049162145287995456159364785787633050670454022415356733436279828026121474304198684826394714023823275474409035722125907968744933888812733388276353131103340267344329577446993736013801333441489959872317455866167990982488862494032382533339398865554795172015751141712208158182430156730253257329125527437433555721928068638939668365435695863714747400159778969330912493820262335770984576681408909191743137606104078168146368736140962263881155700112503518420067918498395209066270122529718706292706269513462479235003980448553743878935873490306073467768421787166088396732236920018080470001459667372533812520690543022743676845557071441210791362624244380593316283235087991037684483131068520119050697961814709899601429648943561250434502139916053000248942474084975289301316745886552295101947493218902643536904181374950305578193277351652681017163774370838368165665873300667656460208354714939635512184062634874633342059725434055414932332055592562625772906965402735043987416072757326807832774598295053590245034252552196565729230637344990998506848021966257375107163444928603740780383694810934305898536090813110930244106200531814895780842449355123925906907120128816781399672919507285770441812662362586536178065192656890550322506234285978051598798554766843999660647475501587816819790633950974506719218016442288169386492902612801383433776476938232078802493059836474986109818467447131637056276118717162276401360649753681048566467888364347285001283475711952206374271251661445516618250550282624670316770754691398600354277603653900221987910809188775052209126897843835190165237783926623050879212816378384510273465112522347370504256765709165305233315383320443453218833774371880631254405517713053123817879013156081975937990880705124752323791990786952867672515175886223224126854089204925072194635868814201306497534086220874371718649325257415763706165388750543229428018225214402925136955664945338651621943678691167424070040543353763099804017401472500002147258482723775088249935221084580326415254951728270727198264283630058768602225734353310121964787001171699462723192174692514788009782137645497725604464052115382322655928043077339854989408045056008554647736446960150484440977617471632049230579328809222309654239663418241243952457324480499658355692290421712503447366761472757269579329688876550246939758115736140393016198005593660094051244512794317452299514633905094528175757133627849532576269010920498459040721525495753551789215189992367740469633621972212593569062086549345605493939944899595660944189097443649406533548727605157789490194819260714867422254365479866637861976395483258237069120770393302486593615911933096096786106030014891695734661126186865114738671593942701203147102861940896949977077654459129883679027839588396018837032571435084151940457905497322462611099784292458628562709278886911257477056582774488333391328359223611215235336386643322692592301136532804338327607246603478883534819184262719623541980644613557075833490956482108397950543846411236046569261201570261954885259832672079025893717474783332157753683591530433280011797896590054782530602055486658775161321051229248614460358526067616353607415126125164593139974019457363152481008139345959625584720700846970219989785278288348794455478604129260969452444475685447875429779377718065340399753793528533171704447449035425147525441338403742716268456915949155556831145363970896913553331848016157089470267312157735528197397427591885265498384183373901048708733831313768302684983813350699391226755865938744534688667916577600332768275978098431298621796259107601329216611950677036961101319287942165237767373029722936472033501559877277538026136333234017435459917400709671943655584305505051128105696450901715287730311400643435206261101313258707074505295036686414733976105319395714728792778860577033215474163124469012435467627665033975990236640420506783900549726638591512944043444383798429080207303751180234347249900220523457722339214843362488299081161881286529292105455025249265477556806477645089025257533780497818428243154858400371591260587910244887482835852622385893688655035643444665744870523579273240096926848594787756757288980928825909060330781266543195656909053811222378880809031084707941625250782532365737878077207908268308921243791021454967335818741613343836654771996880077281732594675030376537519150706953584592082261672978991680028356727825706917723220065397258543731750519893522397633373541400318609989765757763152723226640019027025475720971036541524770646821702209002983394289980652665789205386320719588759629738586488479277285026385596574776910632424269014344020573838736077834327192311466648851408321419366131328926912014692700377573841041632633626007063083918057976538784020297374902266801292090151432866803984282176308044056243613765168429100646691280610943127285242729036191881037839533332154211921370865615213452447601873063559192000116586651925377253791827197935371783483009867834328777411034590716942204129936618379512305758814071403966855599749347583675415244503569830543106490294264231430137504769795097041810578930668631842131265125137548200271426302822092898979068350259994323790587500792021152965743188012177774558850750035091645705101736591069264387359693887764468178561801913705751058506400309178290404719928387380895576948129234243956673538700725553738237615402419845621927652372088266637218377685219977758451730791709347900968605437689908438555965750546950691539250718878475726066013194124727924370359487515091495085121539750900403062227339389117320830543545773166641054547867732580542088074500837874042996103290571500818442429137734054781511438469053917050032523432025558034445201206375531183077489614531150688603302672271357100778502125625198331624247667036421395112677925716507677824456253701429208308848315160411944396406305119980929568915433269358543180873661720913364312564781395487938906637068087293585827089188224219234699090405756880184691593514674624048318750177431702008827477096437678469945674660333982000075172659671607264512904385013713007048287315547902552946565182158633748003839698351375412262106367145039825110171236436221778816314274700293392466227295257050057827411558762388453856066011518500418119021329240460043253369408712055238049981905165123056112552678433279839358278457662231683691247229679883455730779815413472163422183157328570125437858011752138350216596634470567768660157333285871444343924919332160070656024580991592928705157257640744967483096555325506541559166433538337113129601889956731690737800227738978557149244850157815034138033841970177893091147052223299576891082884179272313428667014072668920106709754350178241224087126294965221388997757747611091067787255751917174750026582230449494065532518213161669574494604303454760598599171174123457601038926707781223612954992766582279245749467513905295195535063663671598898890070418436423538532103175279809207611793560208068622032733800184892810845646145225802747075184651036984937298827225997444000697951803584951630563551390129744541050465937050941890643730473961710571297478188233503967646467533196155194232920428317818141975448979087758109577193068812632295358708452315317244561778576047623347737077430488585215456328550331061992404511799565620670890999340342316886350547716616764741859498104673225702290094132358263459558888511261664511298364049032313220738014929670728422164666623722906458738967570712520086412961506727312730453587276650740395672679305785929859211353113340731367731707444804624172416206012544498853949902102816900999248711508911241455944611752048118901657236051853630136143494592067325484673566371196647794859853851030687789183894626601354949314115723532767552765251123431632692578855555419842397284605108841160227343650127624947441813091135333353276859876351798032468898698958891454035401988224839432865625603624700317191446064192193662986461272319705856840225918419302577928253025544513118569122275489599907898414294974943351962801405071358935881396506062682533170879993306793335969924606126838762014629798154745166395139781564145139082717552844082682948681728561379004602494339016129342246923026796458084920290970150642112670432478222193773342755566799214958601671589285599323233384286989255178030532566434631840884990427745960809955867791066016457706616345569108554661350549425611370778837976643388958636569258437187775224417894407969259800488133487900670303887193296551876995113742418589809420504206731787057249033844320680710735664114123689367237291271797864698339437266978174786795999508062013048567749669898835639747636046917990625324570950978915141477627537409363459724041552983344539630407505572157753311744498254650869240179812065069822849357799137823583459670302527264375099522759841742275661716893867406124764894483658569453721197922124281425611858031506848910854558441646520147894265133834888369454517498989814249364800162315396700225165611515810173784100028563655178527246204699806734088352886497673045212232949662135751495893867584846078594630612196668723449219261679220149995913852788992499586735386102092142613918257373614870644534027693201972051563528932647043868382551250086394996449099815010765257054614437650120684252802836607618484795857780962141618588225935623945839517728874029644188184854714398098955314907335843638935269398720984385592660955484027343897511841002773247072741998660148585688501090674250429746442924092357087598610994777804818347940594798031179082494330069400623124668166596877148425801008624143406492939202844145943636645419001238324376577072424094749754118990867374896861982609686686494281048925287446655651509168530281136905121670570261201249036987996237881482998727132089814761292440651924967846854413793776224676426572273585849861691420730352840760179746568326699730028862679306470717536179826965885592244031250030802373183004654740215480047333811891466535379260669872473923550885860744706039460117685476156309052003763863207117539916718149774931935744503697643396586637842706299349133417445334680462577652252693755014506781921145198907498144942432016049634385297619825550877212539915995568277926728916254239288945926185219308575384800546491215261743388597672193373221915916751186324408720856458139277885789414943564991666214608107802284307358847108061042128035240958452254881165200641312029996922129536657128099297611032876998292100392147528185124594303221359791951226754479800867513273053042790484832496268389499590454429562186142362924257236836268993425643026696646582623653129130055609560993382870627573265947067796232455810091887067343093888503163503801578929494976389931119147977233707720376102874585364648428732251994581670859229459392396922880847195938394830080494545971775311304377835396047735163551424113415669637693397465338641790545361466859511931321174640581573305496207733361524371766978980978854154872669551055165278480781443461303684609076824345865155543242593123229798426279313972568962422293649814770221198033857614557106544325666121284629412844540488179796421738462452269296650855666275231098289374131793927796624308355611387760478310579688700062870546865964660684834642939542722585142788362681286204435162876471933331310477682282314180913306361595207892336830237373689890832642925481606782864847170555156162081169004247365837577176593028828351019182249364087479646874702828822434050303957064945939524303512993137210890326046008879159185623574628468870114374055971402799641221956693368939833965011905340388135086664621877936864305836981868739554580121489905752212581125787973710723051844579922671889361254398841541307913384381705141469050324225681129511417721690321437264484131487913790057301262547843717238884890031895670812178191000307883374847190164177290962643362714041722937664250380779634547864603026111073666380707656887227564880176045253602061725219827505349091784428890268956778416048270476048158872198421194253031766152805379502528048400878587214151788254749166270649070556827377900389645894174404113610124935399030911898963800044235376299423015585373951191327816521860409432364724590115053440483303097428424721238862100120562247784269701117605219808622061411405766832687575573191936394269525695862901673667152795122331942675467883708327892792502123388526132646318211454424606075905748700395247949462699767209096947503293140414291171316342539383500068954122007478848386083296435606180261418432900876350558710557172433882382378128783563578689679928217155636099599902747557213944474036303322204925063586870296057109191573154393389441339844528937871852375079014519015511866008552323793166748630150137710690420351426299080576191629933348605052137812095163513136881700969679750419391890016813909241344404370493864639749824291076754514121781311914262359904251949701158992121920463151055467239501582248490406956697739509129398309748278667666065242680953935758654525138534901099232717001402941931492311678368363648229973112996423879007314474821768503252712877082352228148477259412385934609506946482173916713436045175884801181566556865798332504482817336238395911416145852217348070844520306010349879424168466287506423237981558752691164883936792448280896088395718628428851830845391518467497185411842182806733680446096367057362031016830289711298205527333986410723791996070169442641201528941027338147291265722618339044384467159441691151268229133466306911622674230582353365948551874357058652868557927098168887323207659874111978255076599792694745606033693728670210172365059793291944973306912389538140284070488671866953505928617457475297823964779967011543311845046387341759091892826003797285079440117347111606229532762171387665259654979451127995015532907942761495677404506876415451418656892240575877891696946409531639821598532768801943260176121296714761055429139445818263403405261852824351331239985553660276665854170931604517025662175075007287593850173433886316221260288518332600067061562618835614627003581491306114674588322627539359814995804221716822527854137221711628286288283575131521216783963357199916477632415189637660591447647880469607804576336162821840129873419309298424323425221410036509543461582876939339231825113744516615661589977623902331086215952751142081533307533250687001074074953283446206333814974659659172701533234024492293167862225460884723642710118248678400947308188244868694161071896759496550752156781821130051441485681967594038470868007977717680007061725390648138563850978058523485557905918798257950607760767155401413324657231222799757272728586473458862442163316724962595967670564979179256287256576404945664204895559577005161444956901842142493698555002603848781640747101113933021304362287470649593675914529792284244682425208569836834570636351825658744523034383400395059661242846803422871870365297799004948762496941582085213306794189075067497476091664947475487077455928989106009520729392146730226944623584807710832911610757286818575564487408235438231300718564030027691756652902712529759850759058021278838902037905900871262483827613596052441953560518474049691522484148439437324191424047760947643851459231755006148145976287061057903179419502040166636127427660234863680644521427351727015617660110088828122417837969973736050683639650715628661221871433058531205509591897964383665133015008579953971825142864219420867110764269197272698605952164433267888661286696609419162585091644633968087787874348611834833135832665876954400215084595304306297764657842106699781292917528792866921981442332947704879652142101175559476771076055767468052426398088424417479293269712639328194418992208254359321318919946730476360002620106279720899807108793863881575226931474409326570648880066104604667945415262461897555955023406331419816242282971729678348108790634122231180860668953532103216667472098385307750790057160783530230575945508406397376431234900197536325623568794348077677605616402955302262565384665450883367046964483357547363485319046776130965240658093657497903043858261772776130960150144750190202854867754265928597950188378843305411834358384943901940461418250214570239452106759850454806092584014217086006412498411899577883399560418866217729408923254282636919009527127405529735177828294427913327267159993428110179484817821664206628392944520905150686340024142364690362505977917961966600558162257880230521345097194427620186848152292788398433808042056381102097413739664242619518716623688890573845518327303814663334795354447941099641059782801936786577760929527492355106781191527643519259442164969064969930873502370359330309792822802791850739778775150567537568107847214037951836407704803092608011145379843896677475385091629537031893293897570572498645679920510771904300982673276567436922135157357440075216702731820437835359416872629090538244159086250513772223423278133715036201603139027300379185811421545207867629736365859491850487181570752002583316098224113758575836459719692593474604365186523318812283577217486992202261298152583250227133591023645267222150375374628816615519989661185821622708437401480615988878919778986362236394467824329249428656751852499600873181725058286762971721571306101537999318225580836781591055013982666101142652087605259466933330636885563800444598182448090623288056219028333358921658698400395651608550034986858916197346214041658401054401689871628304495558116952042721708595201648824120746673418055411257103799887769367362924824464445699377779888235865673429413870747954688830344956719310397123624938874215368372167406815131537069399149703680540530456340670704343583704988256545518930369689295352513041562770370707081249745969999968687917240422597961405229706687480529485765790427976329231094899047125718319200591738733927702788261643784893112146827215260028977387705933464980577351730371583996099385492807552425498111677476842211909154335560144970263221146435119491463955049419242759942071043121581335852514552434917220873955293577161784544452743574782277295795613104314618647705846179475973549435353781087462587806003194267308631698611837892955543205899165305654038802842593666580540009969433789464329804792265467995064677151155488917319050602464958897155084997553506281993933481001714971672370839147720377059065131377383966534314212951622126427463368796476931357688895806688494412178989675930486168545293693500447209826513069925317737927344524236568504049871074032782924375367004588598346693210366270954056917691166862499013260286096728988736005048758009101645276495896049717293806533380742662510433169264174598556284331277907640411570405124930863869147621034453657161439507852993507812425735606736810901269090370166138080124102423537892774779548286147676108359411524902875559195997390165806997095282629394147201838319977568234041330062383220874953592641830009745566797672637045283308401885596263881623771546788270693694944660871096639449382280724742852387727538546786552845234847042439630964131579955825344388194345627362642786363951461556974246990870591583465459514381348307083037030561731433024291951386359382207650493201285489262492633337995406565396755986817710788276824914381746087741106414937892985270621953373493696330057145995729750669217556010610487029409933844324417496557369733508399501733732316950495272224939511822902318704255056153420458769957723455593496678632789511128666555744739511762712709034725917638752077357597174236742873747467281090488099421758336209043679515354942621558213024708994011569072977170417266837004709848303480685372414426526593975856334441435675296845729337026782555617006608209174769287768915460905596737907701548897251309136214913839238664537401525878287380589190324454111252021742974098033040032285183224837990906795956658446057592683538157884256043838702282031305623444883245006192832095741169055717719761904444698311095722706270546191252502711771202526657712720203439989343468318116829124622537305585718147819703937485420085303282057106209255842160099193160246366090649208444250547042708865544826536155071479230982165238043755002453800829089929024977948623389506683017344399130162027147121311615528222728818922565100683870516738016315060162194390155979824360461931930736050075897352181194903971584714687542255390271276956288506065895326252533721875732328413973056933678242150410437384891204906228084762060280954945482395194211714546414094379456710182528055708503383394247580756517753744166057474157171162497816138829167826653161650434665294318186821445428214539212607850081578646320328771447134101372140752068290810684206234087772946101467145834498429376487434092632371144353839482081828081978110120744042347956316843573203627408000704025949278721888371741591926744804420276568719278869167901714693232839679128127043571638399844016205486975501758674103816498706375464173846624927019952120011845203945829227900427006061032544083322834388215877730277882335615139318348538533508479362745549133025208626193301616044379116067973897098816419416733138156732538254650863450702257836511563406504128704466862693799097599494814502834901701536292235704347584516907383104427932316804643637324158382514069405205357965437525732749240954009118605131300626934699929019288712683145604591903897488821931833503298020487749263645406066120688703179786446320348766362552278720683038558355412664641277185555945793196895631771027518667635980884790049413790491697449375686635083548409991419497358173752528013891591222580688832621650494575960049336853968961669913905628258860503964540186242010843162568862664396588440974335265247584499177039048036303515697520361935677811222796782376282296626568643528417927295841251171080109341258157357224883414422565691165086025413998482361297508723785770028413293650608003812491586880161051341761437178176145503163999815967283899544857371920581734501772204127657914811677285277199604597289492154237438720724762521387183944141221748593791554057118588661574224322640652988050606101551580883956604929600599125840041129691732246659641019178406830514358485397369597821485750377535812223083743233671182457220207292998785335028698445940825598391959742689591201150309564263427155483477799156061531038828039467966550223220782506092868591555339817879158403767260538556040006938974981640363946479042401147003440072566812483433388785400066430504415264055126893602019735414201869961821713134056271441568601488610910072411483048653923278076808827628864516222598542762133808848422275009317409813920282707581013985643896102223787074762948058773653894578066759995818680183857486404148711468695268402679339288504956994333528820882222170145072096752653196934405747116703432542336290705336447787795366718015194330555539041829046346995217217273335102060244950978346770352634461996494587595449724055333418730209327836813137721617462363405446714655789066243397073838103741537378547599079306209517757365070897075283113703356550205989139720582729862950883833640740370680163609867420450984560028722376684004032459431886534484664303768444855216439523121603028468161969645663322241778021197807343870626788912536414007433684774554318285284161930668118793389777242150845041689496623232720866902617393220051712113482744441446339148085100543244255449676993578280342924995646783917038671375192491339962666266471381285940266530535905713725022312276027076557095401000751809637311201106819386163254583559542254123530644663415553189449799083592663379372862792508359076026891055045237325661025349010032413075328082675213979787140256366737729060862169025374285857779537550182862440135544061893111338274779023768976474619438042417175684235264568730323124399025034190291238085488369080051155628616546045616293627612911843526020373952256927117560963049815899241635250223961750533048323156899670026740798587992386650418454177129276036162803323453699341115312608746172647383564741342973159241744344731577223482975909023045373296218060694293078518621472570721390957346391530956947837594436028115399367766920423210342444284489328809397616851888227364779144737197289600236388857892135402062486936770348736261667665656691126930724519472116811092956277140908694331965648461557129359397507200800211662665344451775554772849922536640482660948129787852215891855694906162930471781002946197245793296981305808412137353624928724909367354238396310152552220626781180657713175284864726025148992496053297793192095284416915193943463749658719609183161306841523971833771901297401722096523174094336822378993276992994049606156090978317397854394785074641768864593824462517553408583575516647875053178170866419469537894401274052161509669271054377252627975956791753166364025635652407372633401038448638152131457962803987283967459133553683288032502095287540669237841117994573233266244514872201468678874685988250105202844904076051438172945459401831287342774933282572279288456558961241928370358309241297910663823073042425857689047799820772718978142057385364926941182830539223224851867885981512797291306287351343719843789231845450766296580507290485917287885907155162353350629061420218541474637469486533775154175610517651449988303631789752288283769037184024370229307717853045140489858188048780796903248794790355713521421216172008330706220089566054172325944282080176838713324199349615657580579787066387354381758137874027251263302743764112285585243524175474245436413950238239024772648013670422024537570900885279792895907844265146226017336042027392942338573763503264530163116998377116605310529914457728957502276387592119312919502789280958920642024196243416634122096862396824996476602261531876293548528675336815594971972340662642652894647326076747126722083895462132931004758512625001358125298216749452859886793262765012755348659553342729470658877326184659938729014463081074120064996950495318956414686596420251270593525530619682660431009688079611261801117486336440701073771932359154236766297049906519555007250018308356805815644578440970047060280709061856138307409683053173013789604354511347649605833865580263785118796832255554172763205144775947053379453937993372116011352392097141726737875143869846942262036267884454378372601621364089686595099120874142663784559459517844860495719094626252941713165950757091877639759952896010487242857252144198649403297594954640330601787115779436728481038743490855787199865248303946104732811597282485520030415196035198590236222222872252099243274948868686867731938622464798856368018935600571798713305031281359775478568684142712553826259266646300721546786632890738535788906628152650833281724500253109663913530508876250943840948268905723954096604512649861239064104828329455067545130305758823390763888469926949888014422597169370022003964633543075594782091564200709117425175266305722505732031402876786599328735065832993193145036135841140690901514795232666146694324910684938536241248650709254725404908467287604396275711750313302530547171692014070228460223551722060149718631440973598135602655260574211773439899397415347855876216929404374346649141432801419125078478955397017390063506676163279352676620851235393381891787199181694970002514840091443398518250925814458136855510621178054137469305705831232350804153123353943768084597708148360112199733768016496443543325481502197198209894730663335671362059939937178793968459241528018578430406557883728969461049958673997581621653759922169692217612682378429377802884664736871554808174122033695309951521902324741954430486286080302162095173623924916415376468708445858302925213542646022602985583205948847105491602403849193815144690627662877748869175475282115496529064371125832162497686676643402757480337920676630048796245764061226493057939273974215541144168308580663169686840475478924445363771767655322113069086036346553740368329402865890809382211515424218566748615918195020182964333887460610039568185397590186055077752633676677837169730303621849840304406617003741357987596200063770869700568259008767706847247707740846196957884511707267203205756246898134674164435338065638065190194312845465430549124578477649818409881526748671044012399092687540943422284082747629936219508997799086654022676679781023091701661507518272045882220104063803352713725082057954043430582921252013084288747310689895271876724808221409814740628952465640075764882346496201766120830732015781854806153985383135688910525052240229191387462778188943716650484164803347514701930093946525559047801225962592450346310308603550329770291753941487999860251943853949281712625042703947966757396228879351823327828870121236401629529709644596008301944766936741932654099804476181713317136751468808475318958264333255618064822080296752932240448465598758513858519409118299291650099102250622333385849135826721151304262783840129823642099159456437590951771668441670374380911517282376866695615429928246633660544035487995971302821171068946963736816042433589405184744572081657438553752508540250028333141750527973405144053166781521658055363526412611692649266615547045338771442752101396101583302880182229750588844951973792241112480043963782264103360411875887925812477165345508976570876461192394484209167888445172495841446679104817737164093515016232535920637695379096436161543704099686364936962096679423176062469685224150232518577350065615502303129470143436066875050257347202171491980751508232632113989630024238216113926140113732870316545454258002383495106218861448089033624860996300611519981132778778053753174475019851193409238277477688506802186900583366437492709011588063494888246852553761282730282552308967158731079416815915158546354723886387469588697369436475990339508984199617422411762088205612479343303791360919863484179012939663200422367670418310469499429198446440630027663199251589586955007611398578282887498232677822239455491271637962994805334334509859439762376910303932042579612718506831268238213390260963940111742354908827659743273477489591770053709553979261427950933831865121727864036179121375938739366828010293997426737232115222971111688060418864537551442664475960736850075007678703754336880165406533735583507066834380729807151444570938721233951753181822401763726535765830437839512867263585753617978792106981582379946482460022652970997833285275545191457085727076176088973228089468232742467246807424433262718536698988922265445511377914101509908138523872459243669049613611616409566412201527594413729058960127534447205308006904500500158716110231800803030185685517054818419937400842631296152726031530617295996165138500065603371870370156560129315557965879148476168353223898288391860758454465701139794966096307757860936366340747103100554873269846097563615370653163905913102393729109515787704561278675419281911288994879071608515518845258612892565377394877097530102482806525453835318846624959293078009355524037404481365850492411782606741651289728496766877522374735575908595433705244179765342408254701689336318349043532703764990574347051402415185001535363411474192276017846065564964759468527302593774486376017057737578740850646222664497774117288981645444105430216291487206692373431045608196150169940286854366165650643205859883537200139176166403689671270127396858229531360724978741055797823903121338282195149202910175586754372474251606425616365672612960535279189664781948266606767523926806022039915058840684057000820516453576119048381806914043875659785850089566618341370385201596550924216116378712565397963879247662003961834179363944851998834982501972085317358194331298346876848597922865684461716285623138602459159337416702973007346550652612406314833520257870027382106529047008819349905348864019448388602997089298945153726785352659167567746619841068519973377243176124137348762407919339823463831640739619841960223813500082959835861035426875193344409824842113775731378922850648190036637053161846949622335925162450834337298435811644183855430762585285710972121143844775344397784959940672388278033207005578431730300149336889081781634570928002922207750828429532771519454043023978032589592946174510641089640986222865072187970716783895668890535147129758688458633835922731248104017382594553273079946535342251221862599858051240411020843127685929809894751523410876640102159461717419423739761552314356311613412391055620870605383378198909701979727209953331769487809354279931240900970939680935355643934012092523453291103936198819641714175935415973016274276486350500450756914846285731649298868478245608648069745722683570870399391894240026931988429682795859724848573851846252574227852638242370345207955899183046676751974631423868975983166774237955091835531495914699620124908183712131394979537701536152492188019511156312795993276459241479898358498049938951433790136984129771298406406005198120458218372549932154921776375550071457083202667370571253611896713462927086676517432205844061593902789227283375764792424796484858119018493107031921044634261315296938305590845922514725198520185224732313034499592467954816184070793309450482633960413240899428122847422512710845796790215513042511422521458299850708910359918547349343258537060491582706576686124290190493401796914037836740499613721249291060157557385899101762228489046840932193164171996016427622318003881095349101137627925939113419987929570591972409988561632569386873104087138446778525364517133998259526365023994972550904984841597228499384125569997569458084364528376064419852824591876652498468073227096812595659132338868100809159959033450374378834487242360677758227457530815808276084986817591961607763991085715823663574182618946645159497051551625641440947103232162740210907963938022599418966551501302742467076765459109053962337397004028253516748406164589097000798199568013613354368467188028076177313296574747028200190461417757555116749644889125123978579569509647034717042281272577878467709127870279725864769949642759165584082267748560214719107892690052436457605997599058751145682120729740747689897313742973785164643509629260248687028485202542916014628864153818007091582991998865194297464567774848745500325825024779009518182678266352121298443147060947316477314020298871539494292003814229937628851944353582610416508205235754362900031649629891981095499095911855927243779775881713962170361227356565575820690642317179592050658263419305948692501919098697623010766587883249632948838173365017584091024149244821301821857758590755226884398402881355145965216381986626196327689903118650156653533682844813553748615461644357276958645488820855475630960016857995007579415357261946876293324456652573561463651789494416695854589555677514213247538426851899133172353582764708203485907143275991292756826411564990775735220678851214626761503812412471934501128500372157422081135916426877393955706218849004735948300629703725560057085595149258832993221007198827856267834857091609977658445315091383536867330326645236994151159658584366515007019157596230583463361762328061920798587860232966523692928883948388115498081461236331271938702780089575047550818544411039464134712336102047709704261248619660829830128214456996401556776016933799401169011729725652434663438555639867850991271057738612028958785104650125614263682241782658538040429544667618328926818516843052169452182727811490643012011533982593803991869672897650627377862094779529892143316469659386316868847666682262049918030246213545812266574063861287233867211453851548624556069623278807957242031952699953236054865581698161378824235867538489135150642519078425730167820993728550801132023240086614661026477922165315692932558275836373787294116688726600744412971401359551546152778207172312968301865315473369857360101525557784987994618841429340074125043191036349301661567075699708307828157954482337125902018867140522416895946539037022260731737184823306927719099456202966228407578316951701801115803179595526647529339482856399251941844367749518209189951958537717311444943237996245791459738693000304798363807739377691990410831792982193741903322430976607608444364646851203457899513609757206644905883547109252959122030300669663454804838018591803332729357283999677083149741472500777028845507267037213134203039812352990935460499927681279038974533356082348555169730306712620110245187973276365660466455335253689293626931932411473419794961316880912640681051829625657051428027655895213461963204888454945513305483421914144897958975055865097241975564955724342320948047634820310574721524711861828203627418486977260292637778067946408237167002392759984153465680953345536920262828790006763982005607581645539294566767927713243147042361360444687446266745637211305922313656922453102944753921926207980982191165822041503917082315670535708237340646544000560959868376901348545586537780333429754021707039723440212599340869709851199950104758798000717201755745254237115578403810372546338444020320455182236560518958672245855925531926531063821688439551437680662963526488370672084195488192470364295243182340203862506918339453054083957750605236258828677590617906680867291157909885079835556497695321856151416831605821585096098771124108801739371080559438339744708743754188497754504720539539347711430117102705914706974069988496673828410518030563853563495217378206292730932085140669026053724505549898252642857605444477721169779412285950937985686528880483722786460220772862437972492704381741985206586789601191433530066709763234021983604984531322188488051962562926066877813873572061268112612556647151101582210421345565165147419984068432136774589450686475726525037931145555839815824697835597535625753334248626246630991933113597127380682841156555620854882866106245086965069534478707530994514516526201466081649227935054112280037224246810837719334456445267387333627973505895936557740528709482033935312049957675294926461023698187656256318233136310105575964299058865956451057918358434295215480152765793575843462162058596707235093877511234504173747235320003939133137192181964838373482055205577432312836931767984220918067570312232776624994173623080845199111808515599870252380976201345137757949258143969114766983386166941395496837959649638382998253689604804865556185995499699423877030269047201059007819792036276629664052282157280409685967617863443281529233890823139105969341288986570508905379934095340349540929783975529014044158561346868784342798195315412766004704009087397453964070001459409269960348800766837818556391146626880880960110841506921813682777312350895926596898974630672421582266919339819057884450515668003019480338324428328301344835201179803849366411764354855055108278063823726059211083122259683609831788662930916572412432768121187110785437834369278897085147717059750648228466899601920472079824246737584492742251678301052688037259341367125735800624853241456228955194047444179473508840291186410059048925824012716775437753099133704933620430135077252686071081256620642966352779057910483276436719192085949272745646193815330050671765408728300370722609771431346064762303579788652517368852173167317521114003643944304869246460264191493260151251726225217710606070785194834311590977806162572056491620200964366014985495328212236395291814090334983519595005118684048171632229168651857063570242525388563032951728740492830225233718155138012618718607267354222789930119437770391012327907256438826835166877393767087922937215038672442483216162424443022658445770332713262663290650462813868402873697136216793927996484193757550252736056064307700549008650084608014663274303570255189576632365672191134524179010155800928357324990097830133637082292584281499682830710065444220537394277201154661274697628985304978303721729524680584720494774037170281572718955204828114474273396244128154598475652927156619291127008174186543235821791777153327112042891039653714081650050328527066104871699267461554017764480842672720882170593101660578730561544561061393602307675937051305326094788308564476340129614526269430806695997276283745238397290936482011955224968546213251730491894171707386633874301380274332311727274020604840568730538869560729084718310744862551091970654153887629222623991259662435852099771791798512903526491743204296173844388567718374339526446234725607853050517403963186696842553770114305228626756704536281563729623034479942982753930138310877725620245029487492219466492961993844659118386396863033691474828311608821046764887372862691531309104852954182861159115660637739670303689001669372034073577047494420175383247138701776015699568765802960254643251226702519007371116236759504643227073490006608009140799236655953150485436381265848115188447292038357400232197680962238972356130659893664866153471139606278052982917018010143990068843259727968971006793405391149724796702909596471563482847424743090670829697936947521420093564602863783324677446740632280463076183250689945339622323093912875105249556026899177053317693909429338576373670851639827353620138581660178318904944380907870690428606599318359364812176998081163565974379642793419392491694284634990155914238782049225699251774785378847185502136488339982760586231413245545247473587376076882201471767382002222712442791855376757117154036796659153865784765470771547930598314504256198325163251143937189489994274945523314193853529508974285503293996308750493748307852377442241002465649460731680975338587357533359532530973962884322096864094819981972077334948468753939765707128894859615760331725358850174478096599745384789783924844528389954354151555541030798497025316909757034756633982298634145428174195425299821133327051203892155118990167700858673929935693483742151917326948936218387657052043183406986885887673920271985745120496488121346285269715082227885160270796878272684494274661489272938001940957933909714994714248422315553564757914899959161234476258805707828942007992383827756856171557087223765727048455107613847172740147103163470948778810876709616797129001251405525994371341956086495482013339031990622417858933358083108076221633105208178477512594974798367734008058550634829277150636604591670611207117163920967767829854310908939211575783644730901635958673648958241465782122764514293633530740777230966505450972135819940062439297493466369477918329293239909467273196063730970214704890853947838086355392669893690301333171158290329310529665826070527779461547920969502033853259092693073446109020574408257699501299196294161438278971718611157811836371852870854747691789586222339117294409030021607704513254671297867367876033465133538820261523462865264976607964466140825076811621599122925011257751209584373704819418328090141738819811947760202768367598924287088607470393570291975645079460842793776523324235688944115769469518964205533214254205103964986173289684405269912140464059903444986305498937454042545658712123508247574583628463214659593694648652046987673077426587208536042337779720588303834170266068617588436894600244072960786303337901277637878017113179477322131832897503184273994536018066552797833572286890493674444473983467070660881329242594426128426369335897603328780952271460623761762949113920735374891804083766206582792162862096801209605386038629464198457609386635671390354230949986399729372473085376389850999427323818594285470197407747055436452717477212036994387652736426133332068243759027414147898445699948449883251175509645974513273759117197840676577986113975594187557349488091773660800732266990689786799846535315379632316703907110230598422624519938013211514187847410080079538646558681170242100996804809534099021329164785907886078114229240863496995756070281614325547787575471738172698372832115272321269346640584391063959960016993645373074387151004736877548651592649129135641397074536499347695066073629231421179507887364869286455368267090096724080603921923629946456220569628584409680264989547706717847397679030695765014181561633281305739279474160054423871537595877039263744822452312188346913978067244031534126103861737953448124924232478703604769771803164943794732455255600018063137440218354789036496982918692891935131074754601800334461103942874043718070406639430500647551464648977829782988710477628087176420514735867043093311210284378879099859773445360999769502712716543727745567187391226035508446827405267600062703537471393179675415133605221354820464439579566468226097946106337684040652476818213119628625377190976393904712192465406265664087060188184543211583657508293238192726506871412755222954370224017340140002844293432976281631189830805280536551325642976067972759253471191020878276046918419893670772777889817026365538146905187698737191272349927307511202999385385093242302588549655865885410756825390646715404622823124717309108975703600247975641215397697906783572323070955388005260915057332918194141876514482985927368042307077061249364723330634755975764310869936860235346654773792792499167442377399052823749847540506210515342360870977132534244884144210182061493523385776415198314052290307507484912234845287149300258296580496692081216064441209079379957724795946361040426557663149839729207907786351378943547998277739949831936401323360150161825266654233679750384805685089588816375443303807882090249215624601168307788066384697097776191332324681544855202043430377207170536332437238497757912380273394653588041282849417582956324150092971928022610000550804894845309337898421391589861857175747268641211197025459094632487560030599056085407611800737429342270744135754600811257683367759852544330354480314537017263676098356872212218452395772685738738493012432584088613532604619762795545737484220480156199203828365165701887891482341356304680257878012411565710351691552891993917982545510126530825650473368095293608462395527721803855490588813112758908103097031618499435030429721646747197300784479886830311411532931600450956610904422611331205249147913874534456575888254403213193448268503428844211806489726186601606375690792165533406404843568088449298251036621616492121095413059861646343556513665064702216913212683725921884004914499505044029691323646747479877010347447127693997802527537303298460902335225133894382729611354933586456239365497000831295731727096765447339116164211877835904376335680273613487351223615165732383538421154226689781994626464842618129911248291842116284748388929652473199809918924893861050530565635574283031733736021243543097106311074360137220787079846673696985421808506171693232638052498642615252504925505903350850790793404772939339109171207734797646813683642010832838967815926634654140250354475167107740767188904556967099305498707673549282648657385725739342082731095528218699190401069562572894250045648100337475227766891318141487410126401223557932154084086490346416006616821587649253710449454927021036506946923133269079822876804837166269037889658084167861026269510670939594551647358525524163233730355343475581703763677610672441210790928801192742853092223749883479067387764606421062286851138785402639381307716692070076145859234558831949806844320615109040174485571179340287972442071869806877120205508921442417931546032513516606392542835253562113730295890947516118155538445536333984541866527526809878675053424074245550139936944555103154787280743367115406402892293556893875753777312697279480141461386021614100412628084269384370670401360603809425328309009944821825593235576012630783368862024888364668203291173992140051956008169240051717189524953687949570243303003458446360863748306251588163040073671340669329986132756310986654620321295088011598911633574546332782764169569627176776669162705207856622385455709095483076281266209502260056605995415023860707612258769527599954273564343647431452624903276042825279451497358743398024240763403582152569195105221840017014624343441288021521780418828891318270316179008581416219418683774262038504011584068595893273044370179186857785245884933781537407623619848356502795007023191751696264918219968733829882061315960668685698952283313139748064223505413350039182933020630514582001428946111906546507302225614640986023399591225750853474155396857739065769715383526710997256126762043030287526831579289041570789492106823155906242089336423562801860154271933423412324564876941726706643477406835846214205775373745847436324673432717554659527987483227756196817182135576055450546218437927054845339506570606647049672555966991081045023512234305967282151626034395098272247228726609030320685378457827924579239715695948277566700675415743209221146924188468383503832906662004767885239665828691577996516046015955876103612012634258731279680189196712267213699997328093421493408223290330100993664181218467140638996224711431222855267283731995747166106806994912426391693318255886299844092717684034729241037853805328738671868636591404476925247588590049173668857024186563231092552914675205420173286438240262565708403328082220779223077485317554179034300549140907288748382290785863300404022353451870830867950103738142379041178353335612731739495953339402967209679448160180559800930018530729661634169658664355270063533336623456165797940315732082401577622809859364505536152958853930421872553514232878326229100311407608734727828696099278912669523736561770865534308822677284772063052962031096500838790683533072992965542155163674402049293650378968528220680185706262367906680007162962712740906634227123096236844540115907314724752730295255609823988900668817023574153223554936856458453707623876507721828254635030670197734996504188120724448425705138639154603941358451833083590909994831297868517745931505086420339508253411982405796407446099497718868858104091491485810434194297137350079920120403186268538840389467537375404969536718301331203812871844155690167545417751902691368131864199889768202376783738546021239068492521431004965036259073314475140697871245251067859965917969947714903931179205989074324110555166893222750911965307718432698976836574407706959216066171029564612847991977753736648756569471383903194226362338711172605391771403819110407740029068734215527634262196302950950618749906958542058961118470012898412556333346770880127059720282190990139724645987885786191171869898821971460281329273971277031755588343104770516923983200892821914493843608539622311522105263926046673284077310141393465354862371487792791189358253612314887055105139905639809565230713538709910597449837789211351596440488508465347819497972283056168965307687032880328007947634552237700192804096668694254452736